Я запускаю скрипт PHP на сервере OS X 10.6 через терминал, как это:
cexa:~ soinro$ php /Volumes/dev1/cron/cron.php
И если в скрипте есть ошибки, я получаю вывод:
PHP Notice: Use of undefined constant ccccc - assumed 'ccccc' in /Volumes/dev1/cron/cron.php on line 6
Notice: Use of undefined constant ccccc - assumed 'ccccc' in /Volumes/dev1/cron/cron.php on line 6
PHP Parse error: syntax error, unexpected $end in /Volumes/dev1/http/~dev/_cron/cron.php on line 26
Parse error: syntax error, unexpected $end in /Volumes/dev1/http/~dev/_cron/cron.php on line 26
AsВы можете видеть, что каждое уведомление / ошибка отображается дважды: один раз как «Ошибка синтаксического анализа PHP» и один раз как «Ошибка синтаксического анализа».
Файл, который я вызываю, /Volumes/dev1/cron/cron.php
.Если в этом файле есть ошибка, я получаю только «Parse error», но если в файлах require
s есть ошибки, я получаю сообщения «PHP Parse error» и «Parse error».
Почемуэто происходит, и как я могу сделать так, чтобы я получал оба сообщения (или только те, которые не содержат «ошибки синтаксического анализа PHP») все время;
Ради обсуждения вот исходный код, который я называю:
ini_set('display_errors', 1);
$crons = array_merge(glob("/Volumes/dev1/http/*/_cron/*"), glob("/Volumes/dev1/http/~dev/*/_cron/*"));
foreach ($crons as $cron):
/* there is only one file in the array */
require_once $cron;
endforeach;
/* this is the endforeach I leave out when I want an error in this file */
и вот файл это require_once
$mails = $db->result("select * from newsletter where status = 'sending'");
/* there are 3 elements in $mails */
foreach ($mails as $mail):
echo 'x';
endforeach;
/* this is the endforeach I leave out when I want an error in this file */
Большое спасибо !!