PHP - вместо того, чтобы делать ECHO для отладки значений переменных, как отправить значение в файл? - PullRequest
4 голосов
/ 08 апреля 2011

Мне нужно отладить приложение, но переменная ECHO $ ​​не работает.

Как я могу отправить значение переменной в файл журнала?

Дайте мне несколько подсказок.

С наилучшими пожеланиями,

Ответы [ 5 ]

5 голосов
/ 08 апреля 2011

trigger_error в сочетании с error_reporting позволяет вам легко регистрировать, что вы хотите на серверах разработки, не беспокоясь о нагрузке на ваши производственные серверы.

Добавляет больше информации, чем error_log:

trigger_error('foo');

Результаты в

[Fri Apr 08 14:28:08 2011] [error] [client 192.168.0.13] PHP Notice:  foo in /data/sites/kai/public_html/foo.php on line 3

, тогда как error_log('foo'); приводит к

[Fri Apr 08 14:28:08 2011] [error] [client 192.168.0.13] foo
4 голосов
/ 08 апреля 2011
file_put_contents('/path_to_file/file.txt', print_r($variable, true));

OR

file_put_contents('/path_to_file/file.txt', var_export($variable, true));
1 голос
/ 08 апреля 2011

Я с @Ali на этом. Но вы всегда можете попробовать FirePHP , он позволяет вам записывать информацию о журналировании в их библиотеку, а затем просматривать ее так же, как вы это обычно делаете с FireBug . Вот небольшой учебник - http://www.developertutorials.com/tutorials/php/debugging-php-with-firebug-and-firephp-365/.

1 голос
/ 08 апреля 2011

Лично я считаю такой подход неправильным.Вы будете загромождать свой код либо эхо-операторами, либо функциями для записи в файл.Это требует огромных затрат на сопровождение, так как вы должны добавлять / удалять эти операторы.

Я рекомендую вам научиться входить в код и отлаживать с помощью xdebug.Это единственное решение, которое я обычно рекомендую для людей, пытающихся увидеть, как значения для определенной переменной изменяются во время выполнения.

С учетом сказанного, и если вы по-прежнему предпочитаете метод записи в файл, тогда просто вместосделав выражение echo, сделайте что-то вроде следующего:

$file = "log.txt";
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, $variableName);
fclose($fh);
1 голос
/ 08 апреля 2011
 error_log('some variable');

Но значение переменной будет таким же в файле журнала. Вы должны иметь какую-то ошибку над ней.

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