2012-03-05 3 views
0

Я бегу PHP скрипт через командную строку, как такпроцесс PHP начать командную строку

php /Volumes/dev1/script.php 

Я хочу использовать -B (--process-begin) параметр, так что я могу запустить небольшой кусок кода перед script.php делает свое дело ,

Согласно http://www.php.net/manual/en/features.commandline.options.php, я должен написать что-то вдоль линий:

php -B 'echo "starting ...";' /Volumes/dev1/script.php 

Но если я бегу это так, это только echo S «запуск ...», но он не выполняет код в файле.

+0

я могу заставить его работать с 'PHP -B 'эхо " начиная ...";' -f/Volumes/dev1/script.php' ... При этом вам нужно нажать Enter после появления «start ...», и он запустит файл, но не завершит PHP после завершения сценария выполнения. –

+0

Я продолжаю получать «php -B» echo «start»; -f/Volumes/dev1/cron.php' => 'Либо выполните прямой код, либо обработайте stdin, либо используйте файл.' –

+1

Я делаю это в Windows, и, возможно, у меня может быть другая версия PHP. Я также заметил, что вы должны переключаться между кавычками ('' echo 'start ...'; "'), поскольку он дал ошибку на моем конце с одинарными кавычками, инкапсулирующими ее. –

ответ

4

Из сообщения я продолжал получать, когда я попытался использовать оба -B и -f варианты, я думаю, никто не может выполнить прямой код и выполнить файл.

Сообщение было довольно четко: Either execute direct code, process stdin or use a file.

Но я нашел обходной путь:

php -r 'echo "starting ..."; require_once "/Volumes/dev1/cron.php";'