Как перенаправить вывод PHP-скрипта во время выполнения? - PullRequest
1 голос
/ 17 апреля 2010

Есть ли способ перенаправить вывод исполняемого скрипта PHP?

Конечно, это тривиально при запуске скрипта из командной строки. Но как это сделать после запускается сценарий?

Примечание: Мне нужно перехватить синтаксические ошибки, а также .

Ответы [ 4 ]

1 голос
/ 17 апреля 2010

Если вы хотите перехватить ошибки синтаксического анализатора, вам необходимо:

  1. Убедитесь, что display_errors равно On

  2. Установите error_prepend_string и error_append_string

  3. Вызовите ob_start из файла auto_prepend, который запускается перед каждым исполняемым PHP-файлом.

  4. Используйте set_error_handler как обычно, и сделайте ваш обратный вызов просеять через именованный выходной буфер, ища ваши пользовательские error_prepend_string и error_append_string. Если вы найдете его, шунтируйте свой выход, где хотите. Если вы этого не сделаете, то отпустите его, где бы он ни был.

Большая часть этого может быть достигнута с помощью ini_set вызовов, но файл auto_prepend должен быть указан в вашем php.ini.

1 голос
/ 17 апреля 2010

Вы можете использовать PHP управление выводом даже в сценарии командной строки:

echo "123\n";
ob_start();
echo "456\n";
$s = ob_get_contents();
ob_end_clean();
echo "*$s";
0 голосов
/ 17 апреля 2010

Синтаксические ошибки будут выводиться на STDERR, а не на STDOUT. Убедитесь, что вы также перенаправили STDERR в свою линию ...

./myscript | myfile.php &> out.txt
0 голосов
/ 17 апреля 2010

PHP имеет функции ввода / вывода для записи в файл.

http://www.php.net/manual/en/function.fopen.php
http://www.php.net/manual/en/function.fwrite.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...