Любая причина не использовать PHP exec()?

Если я контролирую серверную среду и отфильтровываю вредоносные инъекции, по какой причине мне не следует выполнять exec( 'mkdir '.$perm.' '.$name ) в PHP?

И вместо использования php GD, могу ли я не использовать exec('mogrify -resize '.$width.' '.$myfile)?

И почти для любой другой операции с файловой системой/манипулированием файлами я могу не использовать командную строку через exec и анализировать результат? Я n00b?

Мне нужно написать некоторую логику миниатюры/изменения размера (опять же!!!!), и я с радостью сократлю путь, если увижу ее, при условии, что это не мышеловка...


person Val Redchenko    schedule 12.01.2011    source источник
comment
Здесь ничего нет. Однако использовать его для создания каталога не имеет смысла.   -  person Your Common Sense    schedule 12.01.2011
comment
Если вы хотите написать сценарий оболочки, почему вы используете php?   -  person glenn jackman    schedule 12.01.2011


Ответы (2)


Ну, один большой аргумент против этого заключается в том, что вы делаете сценарий более зависимым от базовой системы. Будет не так просто перенести его на другой сервер, на котором нет ImageMagick или на котором работает Windows, где команды командной строки выглядят иначе.

В остальном, я бы сказал, что в этом нет ничего принципиально плохого. Если IM доступен, я бы с удовольствием использовал его для операций изменения размера.

Обратите внимание, что существует расширение PHP с интерфейсом для обмена мгновенными сообщениями.

person Pekka    schedule 12.01.2011
comment
Базовая система моя - я контролирую, что устанавливается и т. Д. Что меня беспокоит (интуитивно) - это необходимость ждать завершения вызова exec. Я должен настроить некоторые тесты, я думаю. - person Val Redchenko; 12.01.2011
comment
Если вам не нужны результаты вывода exec, вы можете добавить & к процессу, и он будет работать в фоновом режиме. - person johnwards; 12.01.2011

В UNIX exec() создаст ответвление инициирующего процесса, такого как apache, что является дорогостоящим действием ОС.

person Dennis Kreminsky    schedule 12.01.2011