Php

From ThorstensHome
Revision as of 18:02, 12 December 2015 by ThorstenStaerk (Talk | contribs)

Jump to: navigation, search

Contents

Debugging

It happens often that I see an empty page where I would expect something. One example is when I migrate a server and have a php script running on a new server. It may turn out that this new server does not have a specific PHP module and that is why it does not work. Similarly, if I forget a ";" at the end of a command, the whole php file will just show nothing in the browser. To troubleshoot this, change your php.ini file, e.g. /etc/php5/apache2/php.ini and make sure you have a line like

error_log = php_errors.log

Then you will find the php_errors.log file in the respective directory. For example if there is a problem with /var/www/staerk.de/dokuwiki/doku.php there will be a file /var/www/staerk.de/dokuwiki/php_errors.log telling you the errors as you are used to from command line:

[12-Dec-2015 15:34:16 UTC] PHP Parse error:  syntax error, unexpected '$NS' (T_VARIABLE), expecting ',' or ';' in /var/www/staerk.de/dokuwiki/doku.php on line 34

output

Here is a php trick that outputs debugging output when you want.

$handler=fopen("/tmp/debug","a");
fwrite ($handler, "hello world");
fclose ($handler);

example for variables:

$handler=fopen("/tmp/debug","a");
fwrite ($handler, var_export($variable,true));
fclose ($handler);

variables' content

var_dump

To output an array use

echo serialize($array)

magic words

Parameters

$argv[1]