Quite often I will try and run a PHP script and just get a blank screen back. No error message; just an empty screen. The cause might have been a simple syntax error (wrong bracket, missing semicolon), or a failed function call, or something else entirely.
It is very difficult to figure out what went wrong. I end up commenting out code, entering “echo” statements everywhere, etc. trying to narrow down the problem. But there surely must be a better way, right?
Is there a way to get PHP to produce a useful error message, like Java does?
Đang xem: Debug a php cli script
php debugging error-handling
Share
Follow
edited Nov 19, 2019 at 18:58
TylerH
21.1k5959 gold badges7373 silver badges9393 bronze badges
asked May 10, 2009 at 9:48
CandidasaCandidasa
Xem thêm: Bé Mấy Tháng Uống Được Sữa Tươi, Khi Nào Trẻ Uống Sữa Bột? Khi Nào Nên Cho Trẻ Uống Sữa Tươi
8,4501010 gold badges2929 silver badges3131 bronze badges
4
Add a comment |
41 Answers 41
Sorted by: Reset to default
Trending sort available
Trending sort Trending sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.
It falls back to sorting by highest score if no posts are trending.
Switch to Trending sort
Highest score (default) Trending (recent votes count more) Date modified (newest first) Date created (oldest first)
1
2 Next
522
For syntax errors, you need to enable error display in the php.ini. By default these are turned off because you don”t want a “customer” seeing the error messages. Check this page in the PHP documentation for information on the 2 directives: error_reporting and display_errors. display_errors is probably the one you want to change. If you can”t modify the php.ini, you can also add the following lines to an .htaccess file:
php_flag display_errors onphp_value error_reporting 2039You may want to consider using the value of E_ALL (as mentioned by Gumbo) for your version of PHP for error_reporting to get all of the errors. more info
3 other items: (1) You can check the error log file as it will have all of the errors (unless logging has been disabled). (2) Adding the following 2 lines will help you debug errors that are not syntax errors:
error_reporting(-1);ini_set(“display_errors”, “On”);(3) Another option is to use an editor that checks for errors when you type, such as PhpEd. PhpEd also comes with a debugger which can provide more detailed information. (The PhpEd debugger is very similar to xdebug and integrates directly into the editor so you use 1 program to do everything.)
Cartman”s link is also very good: http://www.ibm.com/developerworks/library/os-debug/