Using http_build_query now that I know about it! Handy!
Tag Archives: php
Escaping SQL values in PHP without using mysql_real_escape_string
Found this article which has a handy ‘escape’ function:
// replace any non-ascii character with its hex code.
function escape($value) {
$return = '';
for($i = 0; $i < strlen($value); ++$i) {
$char = $value[$i];
$ord = ord($char);
if($char !== "'" && $char !== "\"" && $char !== '\\' && $ord >= 32 && $ord <= 126)
$return .= $char;
else
$return .= '\\x' . dechex($ord);
}
return $return;
}
HTTP cache control headers
I had to do two things today. One was to make sure that in production all of my resources were cached. The other was to make sure that in development none of my resources were cached. I ended up with these two functions, which seem to be doing the trick to disable/enable caching:
function set_nocache() {
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
}
function set_cache() {
header('Expires: ' . gmdate( 'D, d M Y H:i:s', time()+31536000 ) . ' GMT');
header('Cache-Control: max-age=31536000');
}
Reference: Completely disable any browser caching.
PHP PDO
I’m learning the PHP PDO interface for database programming. Today I read about fetch, fetchAll, bindColumn and the predefined constants.
PHP mail
I used the PHP mail function for the first time today. I had to configure the SMTP setting for my mail server in my php.ini file and after that it worked fine. Still only sending plain text email, and I’m not sure that I can for HTML email. :P
GeoIP with MaxMind’s GeoLite in PHP
You can download the GeoLite Country database from GeoLite Free Downloadable Databases and you can grab the MaxMind GeoIP PHP API.
Once you have the GeoIP.dat file and the geoip.inc PHP file you’re good to go. E.g.:
require_once __DIR__ . '/geoip/geoip.inc';
$gi = geoip_open( __DIR__ . '/geoip/GeoIP.dat", GEOIP_STANDARD );
$country_code = geoip_country_code_by_addr( $gi, $host );
$country_name = geoip_country_name_by_addr( $gi, $host );
geoip_close( $gi );
The PHP PDOStatement class
Learning about the functions available in The PDOStatement class. The API seems to have changed when I compare the sample code in this article to the API reference. In any event I was able to figure out how to do what I wanted to do!
Resizing images with PHP
Read an article today about Resizing images with PHP which has a follow up about Retaining Transparency with PHP Image Resizing.
I haven’t had to do this yet, but I see it in my future. :)
PHP error handling and reporting
Quick and dirty PHP error handling:
error_reporting( E_ALL | E_STRICT ); ini_set( 'display_errors', 'on' );
Formatting a float as a percentage in PHP
To format a float value as a percentage in PHP:
$formatted = sprintf( '%.2f', $value * 100 );