Я создаю контрольный список для предварительной установки для программы. Программа требует PHP5, поэтому мне нужен checklist-script, чтобы проверить наличие PHP5.
Существует функция phpversion()
, которая вернется в формате 5.3.6
или аналогичной. Тем не менее, я хочу, чтобы контрольный список был очень прямым и просто сказал вам «да» или «нет». Поэтому отображение текущей версии мне не очень помогает. Хорошо, один из способов – использовать phpversion()
и удалить комы и т. Д. Но разве нет более аккуратного способа? (Как ни странно, в этом нет никакой информации)
Итак, как просто проверить, есть ли версия PHP версии 5 или выше?
if (...) { echo 'Server has PHP5 or above!'; } else { echo 'Servers PHP version is lower then PHP5'; }
Существует предопределенная константа:
echo PHP_MAJOR_VERSION // displays 5
http://nl.php.net/manual/en/reserved.constants.php#reserved.constants.core
Так:
if (defined('PHP_MAJOR_VERSION') && PHP_MAJOR_VERSION >= 5) { echo 'Server has PHP 5 or above!'; } else { echo 'Servers PHP version is lower then PHP5'; }
Выше работает только для PHP <5.2.7, попробуйте вместо этого для более низких версий:
if (strnatcmp(phpversion(),'5.0.0') >= 0) { echo '5 or higher'; } else { echo '4 or lower'; }
Это предлагается в одном из комментариев здесь: http://www.php.net/manual/en/function.phpversion.php#91816
Что-то вроде этого вы сможете адаптировать:
<?php if (version_compare(PHP_VERSION, '6.0.0') >= 0) { echo 'I am at least PHP version 6.0.0, my version: ' . PHP_VERSION . "\n"; } if (version_compare(PHP_VERSION, '5.3.0') >= 0) { echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n"; } if (version_compare(PHP_VERSION, '5.0.0', '>=')) { echo 'I am using PHP 5, my version: ' . PHP_VERSION . "\n"; } if (version_compare(PHP_VERSION, '5.0.0', '<')) { echo 'I am using PHP 4, my version: ' . PHP_VERSION . "\n"; } ?>
Здесь вы можете увидеть документацию .
См. http://www.php.net/manual/en/function.version-compare.php для примера:
if (version_compare(PHP_VERSION, '5.0.0', '>=')) { ...
Если функция phpversion () возвращает ее как прямое число, вы можете сделать следующее:
if ( phpversion() >=5 ) { echo 'Server has PHP5 or above!'; } else { echo 'Servers PHP version is lower then PHP5'; }
echo 'Current PHP version: ' . phpversion();
Вы можете получить дополнительную информацию в документации по PHP . Это доступно в PHP4 и более.
$version = explode('.', phpversion()); $major = (int)$version[0]; $minor = (int)$version[1]; $release = (int)$version[2];
if ( substr(phpversion(),0,1) >= 5) { //php >= 5 }else{ //php < 5 }
Это было не так сложно, не так ли?
EDIT: Если нас беспокоит версия 10, нарушающая вышеуказанный код:
if ( strtok(phpversion(),'.') >= 5) { // php >= 5 }else{ // php < 5 }
На самом деле Symfony2 уже включает такой скрипт. Он находится в app/check.php
. Он проверяет как минимум PHP 5.3.2, а также многое другое.
Я предлагаю вам просто использовать это.
echo PHP_VERSION_ID;
//You use version 5.3.7 the output like 50307
или echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION.PHP_RELEASE_VERSION; // Вы используете версию 5.3.7, такую как 537