How do I catch a PHP fatal (`E_ERROR`) error?

Log fatal errors using the register_shutdown_function, which requires PHP 5.2+: register_shutdown_function( “fatal_handler” ); function fatal_handler() { $errfile = “unknown file”; $errstr = “shutdown”; $errno = E_CORE_ERROR; $errline = 0; $error = error_get_last(); if($error !== NULL) { $errno = $error[“type”]; $errfile = $error[“file”]; $errline = $error[“line”]; $errstr = $error[“message”]; error_mail(format_error( $errno, $errstr, $errfile, $errline)); } } … Read more

htmlentities() vs. htmlspecialchars()

htmlspecialchars may be used: When there is no need to encode all characters which have their HTML equivalents. If you know that the page encoding match the text special symbols, why would you use htmlentities? htmlspecialchars is much straightforward, and produce less code to send to the client. For example: echo htmlentities(‘<Il était une fois … Read more

phpmyadmin – count(): Parameter must be an array or an object that implements Countable

Edit file /usr/share/phpmyadmin/libraries/sql.lib.php using this command: sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php On line 613 the count function always evaluates to true since there is no closing parenthesis after $analyzed_sql_results[‘select_expr’]. Making the below replacements resolves this, then you will need to delete the last closing parenthesis on line 614, as it’s now an extra parenthesis. Replace: ((empty($analyzed_sql_results[‘select_expr’])) … Read more

Insert new item in array on any position in PHP

You may find this a little more intuitive. It only requires one function call to array_splice: $original = array( ‘a’, ‘b’, ‘c’, ‘d’, ‘e’ ); $inserted = array( ‘x’ ); // not necessarily an array, see manual quote array_splice( $original, 3, 0, $inserted ); // splice in at position 3 // $original is now a … Read more

PHP, cURL, and HTTP POST example?

<?php // // A very simple PHP example that sends a HTTP POST to a remote site // $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,”http://www.example.com/tester.phtml”); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, “postvar1=value1&postvar2=value2&postvar3=value3”); // In real life you should use something like: // curl_setopt($ch, CURLOPT_POSTFIELDS, // http_build_query(array(‘postvar1’ => ‘value1’))); // Receive server response … curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = … Read more