phpversion

(PHP 3, PHP 4, PHP 5)

phpversion -- Gets the current PHP version

Description

string phpversion ( [string extension] )

Returns a string containing the version of the currently running PHP parser. If the optional extension parameter is specified, phpversion() returns the version of that extension, or FALSE if there is no version information associated or the extension isn't enabled.

Замечание: This information is also available in the predefined constant PHP_VERSION.

Пример 1. phpversion() example

<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();

// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');
?>

See also version_compare(), phpinfo(), phpcredits(), php_logo_guid(), and zend_version().



phpversion
Sayid say at id dot or dot id, godril at lesehan dot or dot id
14-Jul-2006 04:33
When PHP is running under fastcgi, script from ground-pilot at net-pilots.com didn't work as expected. Otherwise, the php (fcgi one) is waiting for input and causing idle php-cgi processes showed in 'ps aux'. I think this is because in fastcgi mode, direct execution to php fcgi binary is waiting for input. So, giving it /dev/null as input is a workaround for this situation.

First, we build a script from PHP which we will executed and then unlink() it after a success. The output script might look like:
<?
$script
=<<<HEREDOC
#!/bin/sh
/usr/local/bin/php-cgi -v < /dev/null
\n
HEREDOC;
$file = "/tmp/phpgetvercmd" . rand ( );
$fh = fopen ( $file , "w" );
fwrite ( $fh, $script );
fclose ( $fh );
chmod ( $file, 0755 );
echo
trim( substr ( shell_exec ( $file ),  3, 6 ) );
unlink ( $file );
?>
25-Oct-2005 10:08
The version 4.3.10-16 does not "respect" the requiement for the above code. Use this fuction.

sample call:
if(!check_version(PHP_VERSION, "4.1.0") )
{
   echo 'Current PHP version: ' . PHP_VERSION . ' is too low for this code!<p>';
}

Function:
# Compares versions of software
# versions must must use the format ' x.y.z... '
# where (x, y, z) are numbers in [0-9]

function check_version($currentversion, $requiredversion)
{
   list($majorC, $minorC, $editC) = split('[/.-]', $currentversion);
   list($majorR, $minorR, $editR) = split('[/.-]', $requiredversion);
  
   if ($majorC > $majorR) return true;
   if ($majorC < $majorR) return false;
   // same major - check ninor
   if ($minorC > $minorR) return true;
   if ($minorC < $minorR) return false;
   // and same minor
   if ($editC  >= $editR)  return true;
   return false;
}
nick at divbyzero dot com
28-Jul-2005 01:06
Of course, if you want to COMPARE versions, you can't just compare them numerically, so try something like:

<?php
echo phpversion()."\n"; //4.3.10-15
$v2 = preg_replace("/[^0-9\.]+/","",phpversion()); //4.3.1015
$v=$v2-0; // 4.3
$v2=substr($v2,strlen($v."")+1); //1015
echo $v." ".$v2."\n";

echo (
$v>4.3 || ($v==4.3 && $v2>=1))."\n"; // 1 if >= 4.3.1
?>
ground-pilot at net-pilots.com
22-Jan-2005 11:52
Difference from bleeding edge server and production server where I couldn't use the phpversion() function. Came up with this to grab it from the command line instead. Note that the 'command line' version result , and 'http server api' version result could be two or more different versions, and not matching each other. So this may return a misleading value for your environment? Be careful if you have updated the web server api and not the command line, or visa-versa. ;)

But for me - it works.

<?php
$PHP_VERSION
= get_my_phpver();

echo
"PHP_VERSION = $PHP_VERSION<br>";

function
get_my_phpver() {
// USE :
//  $PHP_VERSION = get_my_phpver();
// CAVEAT NOTES :   
//  exec() will only return last line
//  passthru() will always show output, even when you ob_start() the output.
//  shell_exec() will return ALL lines of output but not forced
  
$my_phpver = trim(substr(shell_exec('php -v'), 3, 6));
  
// returns "4.3.1" of "PHP 4.3.1 (cgi)..." and removes white spaces
  
return $my_phpver;
}
?>

Of course this would also do the trick...

<?php
$PHP_VERSION
= trim(substr(shell_exec('php -v'), 3, 6));
echo
"PHP_VERSION = $PHP_VERSION<br>";
?>

And as always, there are OTHER method, but this works for me.

Hope this helps someone else out as well. :)

<phpinfoputenv>
 Last updated: Tue, 15 Nov 2005