С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/28: Рейтинг темы: голосов - 28, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
1

Запуск внешней программы с PHP

20.12.2009, 17:29. Показов 5537. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю цикл типа:
PHP
1
2
3
4
5
6
7
foreach ($files as $pic)
{
  print 'making nail for $pic ...';
  exec ('convert -resize 100x100 $pic $pic.png');
  print 'done
';
}
В общем мысль понятна.
Кто знает, почему под Linux это работает как положено - то есть выводится сообщение, потом ждем выполнение команды, потом пишет done и так далее.
А под виндами ждет пока не выполнится весь цикл и нечего не выводит, а в конце выдает разом все сообщения! Пробовал по flush() отправлять вывод из буфера - не помогает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2009, 17:29
Ответы с готовыми решениями:

Запуск внешней программы
Очень прошу помощи. С php толком никогда дела не имел. Задача следующая: Нужно, чтобы при нажатии...

Запуск из программы с админскими привилегиями внешней программы без прав админа
Нужно в программе которая запущенна под амином запустить другую программу без прав админа.

Запуск внешней программы программы из коммнадной строки
Здравствуйте, есть программа D:\user\start.exe Как средствами excel vba вызвать командную строку и...

Запуск внешней программы
Доброго времени суток. exec - запускает но не возвращает управление программе system - запускает...

20
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
20.12.2009, 23:47 2
попробуй не мнго приостанавливать всё это дело sleep()
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
21.12.2009, 09:44 3
а вот эсэлЬ - то уж должен знать почему ждет прохождения всего цикла!!! это же у него вся оперативка забивается, и прочая ерунда происходит. говорил же я не совоться туда куда не знаешь, а он еще советы дает - да какие, поставь говорит sleep чтоб еще медленнее было.

для работы этого цикла так как реально задумано надо использовать flush() ибо все данные сначала помещаются в буфер
и только потом высылаются в браузер. так вот flush() этот самый буфер и очищает, отправляя все что в нем браузеру.

сразу огорчу - под виндой у меня flush() не работает, в чем причина - понятия не имею. но ходят слухи что у многих работает. возможно зависит от способа подключения php к апачу. у меня стоит как модуль.

эксперементируй!
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
21.12.2009, 09:55  [ТС] 4
Flush не работает? Логично.
Просто любопытно - в чем по твоему разница в этом случае между виндой и линуксом (без flusha) на одной машине?
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
21.12.2009, 10:09 5
разные ОСи, соответственно - абсолютно разные реализации, конфигурации как апача, так и пхп. У пхп - есть инструкции в пхп.ини выводить все сразу, без буферизации, но видимо не работает она как раз по причине проблем с flush()

вполне возможно что в линухов пхп - такая инструкция стоит по умолчанию.

а разница очевидна - пхп вообще под *никс писался изначально, а под винду его просто подгоняли ... а от машины тут ничего не зависит.
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
21.12.2009, 11:43  [ТС] 6
Кстати этот самый 'convert' в реализации под виндоуз работает в 3 раза быстрее, чем под родным Линукс (по крайней мере меняет размер изображения.
А вот функции 'images...' из ПХП наоборот под виндами работают раз в 10 медленнее.
0
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 15
26.12.2009, 04:23 7
; buffering functions. You can also enable output buffering for all files by
; setting this directive to On. If you wish to limit the size of the buffer
; to a certain size - you can use a maximum number of bytes instead of 'On', as
; a value for this directive (e.g., output_buffering=4096).
output_buffering = 4096

оно??
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
26.12.2009, 09:57 8
; Implicit flush tells PHP to tell the output layer to flush itself
; automatically after every output block. This is equivalent to calling the
; PHP function flush() after each and every call to print() or echo() and each
; and every HTML block. Turning this option on has serious performance
; implications and is generally recommended for debugging purposes only.
implicit_flush = off

оно!!!
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
26.12.2009, 16:59  [ТС] 9
Сейчас попробую, спасибо.
У меня еще вопрос на засыпку - я правильно понимаю, что выполнить внешнюю программу, которая не является утилитой командной строки невозможно?
Мне нужно запустить из ПХП, например, GIMP под линуксом или фотошоп в виндах - как быть?
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
27.12.2009, 11:41  [ТС] 10
Пожалйста,
напишите кто-что может по моему последнему вопросу!
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
27.12.2009, 12:27 11
запускать Photoshop ...

хм - а где смысл?

что то я никак не сооброжу ... что это вообще будет.
и как это увязать с вебом. расскажи лучше
для каких целей тебе вообще необходимо это организовать
а то может ты вообще на неверном пути

90% ошибок возникают на стадии проектирования
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
27.12.2009, 12:45  [ТС] 12
Расскажу с удовольствием.
Я увлекаюсь цифровой фотографией и их у меня уже больше 1000.
Комп у меня то под виндами, то под Линуксом.
В последнем случае ни одной нормальной программы для фотоальбомов я не нашел, да и в первом тоже. Также под Линуксом нет программы, которая бы группировала фотографии, например, по 4 на листе А4 для печати. Кроме GIMP и convert - мне надо, чтобы жена тоже могла пользоваться.
Поэтому я поставил хост на одну и туже директорию (под fat32) в виндах и линуксе и написал (пишу) на рхр свою программу для фотогаллереи.
Готовые не нравится ни одна!
Так вот я хочу запускать фотошоп с выделеными фотографиями прямо из браузера, если нужно, например, подтянуть уровни. Хотя, конечно, понимаю, что это задача не для ВЕБ-приложений.
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
27.12.2009, 12:50 13
ну идея конечно хорошая,
но думаю сдесь java больше подойдет!!!
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
27.12.2009, 12:56 14
у меня таже история было с музыкой,
но только платформа у меня одна
поэтому я заделал на C++

а в вашем случае - межплатформенную программу
можно написать на Java, причем по моему не так
уж и сложно это будет сделать, а возможностей
много - и сервер совсем не нужен
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
27.12.2009, 13:09  [ТС] 15
Я явы совсем не знаю.
У меня еще задумка опубликовать потом это в ВЕБе в усеченном варианте - для друзей.
Все таки - есть идеи по запуску фотошопа на ПХП?
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
31.12.2009, 21:04 16
Для веба такие заморочки вообще смысла не имеют.
Потому что все построено на технологии клиент - сервер.
Клиент спрашивает - сервер отвечает. Все рассчитано на передачу данных. А если запускать Фотошоп на сервере - то какой это имеет смысл? Думаю админ от этого не обрадуется, а клиенту до запущенного (ну допустим) Фотошопа никогда не добраться. Сдесь надо получить доступ к командной строке, и это через веб нериально (про вынос апача умолчим).
0
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
03.01.2010, 10:54  [ТС] 17
Я не собираюсь в ВЕБе запускать фотошоп. Хочу опубликовать только саму фотогаллерею, без администрирования.
Так все-таки - есть идеи по запуску фотошоп из ПХП?
0
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
03.01.2010, 17:46 18
знаешь - я все это расписал не для того чтоб ты вопрос задал еще раз, а для того чтоб тебе ясно стало что это несочетаемые вещи.

любой сервер - будь то локальный или удаленный - остается сервером,
поэтому все это относится и к твоему серверу тоже.

есть такая штука как PHP-GTK, так вот там - такое возможно, так как в этом случае созданное приложение никакого отношения к вебу не имеет.

что касается самого PHP:

passthru()
system()
exec()

Вот набор функций которые позволяют худо бедно исполнить внешние команды.
Конечно можно к примеру дабавить путь к photoshop.exe в PATH и пустить

exec('photoshop.exe');

но честно скажу - не пробовал ))))
0
rookie
06.01.2010, 03:30 19
Вебсервер для апплета на джаве действительно не нужен но существует небольшое ограничение.Если у юзера нет на компе джавы(ХР например) то ему качать ее надо. Если у него есть встроенна джава от майкрософт то она старая и урезанная и свингов в ней нет(а это очень хорошая штука) поэтому если писать на свинге то надо юзеру ставить линк на скачку плагина(JRE 1.4.2).С Линуксом по моему проще по крайней мере со свежими версиями там уже есть джава и гораздо выше версии чем на виндоуз.
А ваще прикольно у вас тут на форуме по пхп.sl_play ругается запостоянку с 8fr0st8... Иногда захожу чисто почитать что ещё нового они придумали во взаимном оскорблении друг друга))))))))))))
0 / 0 / 1
Регистрация: 03.12.2009
Сообщений: 124
06.01.2010, 23:01 20
а мы люди не гордые. мне вообще все по барабану.

могу и на вас мистер последняя кровь наехать.

не джава вообще то а Ява, и названа оно в честь острова, на котором колоситься кофе. Кстати и эмблема у него - кофейная кружка )))

И еще - это вообще ответ на какой вопрос? Чета я весь топик перерыл, но нигде контакта не нашел. Или ты просто решил блеснуть своими познаниями в Джаве? Тогда заходи чаще - познаний будет больше 6)

!!!Вы прослушали тренировачный наезд на мистера Роки, просьба не воспринимать эти строки в серьез, ну разве что за исключением строк про кофе.!!!

ОФФТОПИК ))))))))))))))))))))))))))))
0
06.01.2010, 23:01
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2010, 23:01
Помогаю со студенческими работами здесь

Запуск внешней программы
В программе создается некое изображение, которое потом нужно открыть внешней программой. Но до для...

Запуск внешней программы
Нашел пример с интернета, подставил свои данные но код не работает, просто тупо ничего не...

Запуск внешней программы
Доброго дня. Подскажите пж. В паке лежит несколько файлов с расширением dtl, например ...

Запуск внешней программы
Нужно, что бы по клику на кнопку вызывалась программа. Вопросы: 1)Что мне прописать сюда: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru