note 52481 deleted from function.gd-info by cmb

From: Date: Wed, 14 Sep 2016 21:53:41 +0000
Subject: note 52481 deleted from function.gd-info by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-206592@lists.php.net to get a copy of this message
Note Submitter: Hagan Fox ---- This function safely determines the GD version, even on PHP versions earlier than 4.3 that lack the gd_info() function. Use it to avoid having your script halt with a fatal error if you try to use a TrueColor function and the GD version isn't 2.0 or later. You can optionally specify a version, but if you specify version 2 it might be overridden. Once the version number is determined it's retained to speed future calls. <?php /** * Get which version of GD is installed, if any. * * Returns the version (1 or 2) of the GD extension. */ function gdVersion($user_ver = 0) { if (! extension_loaded('gd')) { return; } static $gd_ver = 0; // Just accept the specified setting if it's 1. if ($user_ver == 1) { $gd_ver = 1; return 1; } // Use the static variable if function was called previously. if ($user_ver !=2 && $gd_ver > 0 ) { return $gd_ver; } // Use the gd_info() function if possible. if (function_exists('gd_info')) { $ver_info = gd_info(); preg_match('/\d/', $ver_info['GD Version'], $match); $gd_ver = $match[0]; return $match[0]; } // If phpinfo() is disabled use a specified / fail-safe choice... if (preg_match('/phpinfo/', ini_get('disable_functions'))) { if ($user_ver == 2) { $gd_ver = 2; return 2; } else { $gd_ver = 1; return 1; } } // ...otherwise use phpinfo(). ob_start(); phpinfo(8); $info = ob_get_contents(); ob_end_clean(); $info = stristr($info, 'gd version'); preg_match('/\d/', $info, $match); $gd_ver = $match[0]; return $match[0]; } // End gdVersion() // Usage: if ($gdv = gdVersion()) { if ($gdv >=2) { echo 'TrueColor functions may be used.'; } else { echo 'GD version is 1. Avoid the TrueColor functions.'; } } else { echo "The GD extension isn't loaded."; } ?> The function only detects the GD version, but you could determine GD capabilities in a similar manner.

« previous php.notes (#206592) next »