Je crée une liste de contrôle de pré-installation pour un programme. Le programme nécessite PHP5, j'ai donc besoin de la liste de contrôle-script pour vérifier la disponibilité de PHP5. donc, Comment simplement vérifier si les serveurs La version PHP est de 5 ou plus? Strong> p>
Il existe une fonction comme phpversion () code>, qui retournera au format de
5.3.6 code> ou similaire. Cependant, je veux que la liste de contrôle soit très simple et vous indique simplement oui ou non. Donc, l'affichage de la version actuelle n'aime pas cela beaucoup. Ok, une solution consiste à utiliser le
phpversion () code> et supprimer les comas, etc. mais n'y a-t-il pas une manière de Néater? (Assez étrange, il n'y a aucune information sur cette nulle part)
if (...) {
echo 'Server has PHP5 or above!';
} else {
echo 'Servers PHP version is lower then PHP5';
}
9 Réponses :
echo 'Current PHP version: ' . phpversion(); You can have further information in the PHP documentation. This is available in PHP4 and over.
Cela ne répond pas vraiment à sa question, ce qui semble être quelque chose comme "Comment puis-je dire si la sortie de la phpversion () est une aversion supérieure à ou égale à 5,0
Eh bien, s'il ne peut pas faire un si avec le numéro de phpversion (), nous avons un problème ... un peu de base de base?
Il y a une constante prédéfinie: http://nl.php.net/manual/fr/Reserv Pré> xxx pré> ci-dessus ne fonctionne que pour PHP> 5.2.7, essayez-le plutôt pour les versions inférieures: p> Il est suggéré dans l'un des commentaires Ici: http://www.php.net/manual/fr/function .phpersion.php # 91816 p> p>
Ce serait génial sauf: disponible depuis PHP 5.2.7. Code>
Parfait! C'était exactement ce que je cherchais! Je me sens tellement gêné que je ne pouvais pas comprendre cela moi-même. Je pensais qu'il doit y avoir une fonction extrêmement étrange pour cela. Merci!!
@timdev: Vous venez de tuer mon bonheur .. Il n'y a pas une fonction similaire pour les versions inférieures de PHP?
Ce qui est disponible uniquement depuis la version 5.2, afin que cela ne fasse pas beaucoup de bien.
@Kalle - Voir ma réponse, vous utilisez simplement le substruisement () sur la valeur de retour de la phpersion (). c'est de la tarte.
@Kalle: Vérifiez mon édition pour un exemple plus complet pour PHP <5.2.7
Eh bien, c'est très déroutant, car la plupart de ces réponses fonctionnent. J'ai donc vérifié toutes les méthodes avec Microtime () code> et cette méthode me donne des résultats les plus stables (également les plus bas).
D'accord, sur la base des résultats de la performance, c'est la meilleure solution. Cependant, j'ai remplacé phpversion () code> avec
php_version code>. Parce que ça a l'air Natre et semblait faire des choses 0.0000004 secondes plus rapidement. Donc merci pour la réponse!
Sachez que la vérification des performances dans de telles régions extrêmes est très négligeable.
@Luwe, oui accepté. Cependant, dans ces cas, vous devez faire une petite statistique sur le résultat le plus bas et le plus stable.
Si la fonction PHPVERSION () le rendit comme un numéro droit, vous pouvez le faire:
if ( phpversion() >=5 ) { echo 'Server has PHP5 or above!'; } else { echo 'Servers PHP version is lower then PHP5'; }
Il ne renvoie pas un nombre mais une chaîne contenant la version complète.
Amm, assez étrange, cela fonctionne. Wow, la réponse peut-elle être vraiment aussi simple?
@Goleztrol: C'est ce que ma première pensée était, mais techniquement, ce n'est qu'un chiffre avec des décimales ..
Cela fonctionne parce qu'ils sont comparés comme des chaînes. Cela échouera une fois que nous atteindrons la version 10. :) Ce n'est pas un nombre. Il contient deux points et ne peut pas être converti en un flotteur.
Pour l'enregistrement: phpversion () code> retourne comme une chaîne, il peut être converti en nombre avec
number_format () code>. Cependant, il est plus lent que la méthode acceptée.
if ( strtok(phpversion(),'.') >= 5) { // php >= 5 }else{ // php < 5 }
Ouais, cela fonctionnera une fois que nous atteindrons la version 10. :) Meilleure recherche du point. Je sais que le développement PHP n'est pas très rapide, mais je pensais que celui de Firefox aussi, et maintenant ils publient 3 versions dans un an.
voir http://www.php.net/manual/fr/function.version- Comparez.php pour un exemple:
if (version_compare(PHP_VERSION, '5.0.0', '>=')) { ...
Oui, cependant, php_version n'est pas pris en charge dans PHP4, puis il perd le point ..?!
Si le programme d'installation doit vraiment fonctionner sur PHP <4.1, vous pouvez vérifier que la version_compare existe d'abord. if (fonction_exists ('version_compare') && version_compare (php_version, '5.0.0', '> ='))) code>. Cela devrait revenir à 4.0.
Quelque chose comme ça, vous pourrez peut-être vous adapter:
<?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"; } ?>
Bonne solution. Surtout parce que php_version est disponible alors que php_major_version comme mentionné par d'autres personnes, est uniquement disponible depuis 5,2.
Ouais allait suggérer PHP_MAJOR_VERSION, mais j'ai vu ce petit dégagement dans la documentation.
$version = explode('.', phpversion()); $major = (int)$version[0]; $minor = (int)$version[1]; $release = (int)$version[2];
En réalité, Symfony2 inclut déjà un tel script. C'est dans Je vous suggère de simplement utiliser ça. P> app / check.php code>. Il vérifie un minimum de PHP 5.3.2 et aussi beaucoup d'autres choses. P>
ou echo php_major_version.php_minor_version.php_release_version;
// Vous utilisez la version 5.3.7 la sortie de 537 code> p> echo php_version_id;
// Vous utilisez la version 5.3.7 la sortie de 50307 p>
Le point de la vérification de la version était d'éliminer les serveurs, qui sont obsolètes. Si et php_version_id code> est depuis 5.2.7. version. Donc, si la PHP est la version 4 ... alors il y aura une erreur.
En outre, il apparaît que php_version_id doit être prédéfini dans votre code, il ne viendra pas de Serverside ee1.php.net/phpersion