Lors du développement d'applications PHP, il est souvent nécessaire d'obtenir les informations système du serveur pour le débogage ou l'optimisation. PHP fournit une fonction très utile PHP_UNAME () , qui peut nous aider à obtenir des informations pertinentes sur le système, telles que le nom du système d'exploitation, le numéro de version, etc. Aujourd'hui, nous discuterons de la manière d'utiliser efficacement PHP_UNAME () pour obtenir des informations système, en particulier comment s'adapter en fonction des différents systèmes d'exploitation lors de la rédaction de scripts généraux.
php_uname () est une fonction PHP intégrée, principalement utilisée pour renvoyer des informations détaillées du système d'exploitation du serveur. Grâce à cette fonction, nous pouvons facilement comprendre l'environnement du serveur où les scripts PHP s'exécutent, afin de faire une optimisation ou un débogage correspondant. Cette fonction renvoie une chaîne contenant le nom du système d'exploitation, le numéro de version, l'architecture matérielle et d'autres informations.
$system_info = php_uname();
echo $system_info;
Après avoir appelé le code ci-dessus, quelque chose de similaire à ce qui suit peut être renvoyé:
Linux myserver 5.4.0-42-generic #46-Ubuntu SMP Thu Jul 9 14:58:19 UTC 2020 x86_64
Cela inclut des informations telles que le type de système d'exploitation (Linux), le nom d'hôte (MyServer), la version du noyau (5.4.0-42-générique) et l'architecture matérielle (x86_64).
La fonction php_uname () peut recevoir un paramètre facultatif qui spécifie le retour de différents types d'informations. Plus précisément, ce paramètre peut être les valeurs suivantes:
R : Renvoie des informations détaillées telles que le nom du système d'exploitation, le nom d'hôte, la version du noyau, l'architecture matérielle, etc. (valeur par défaut).
S : Renvoie uniquement le nom du système d'exploitation (par exemple: Linux, Windows, Darwin, etc.).
R : Renvoie le numéro de version du système d'exploitation.
V : Renvoie les informations de version du système d'exploitation.
M : Renvoie le type d'architecture matérielle (par exemple: x86_64, arm64, etc.).
echo php_uname('s'); // Nom du système d'exploitation de sortie
echo php_uname('r'); // Version du système d'exploitation de sortie
echo php_uname('m'); // Type d'architecture matérielle de sortie
Les informations système obtenues via php_uname () peuvent être adaptées en fonction de différents systèmes d'exploitation. Par exemple, si vous utilisez un système d'exploitation différent dans une application PHP multiplateforme, vous devrez peut-être gérer différents séparateurs de chemin ou exécuter différentes commandes système.
$os = php_uname('s'); // Obtenez le nom du système d'exploitation
if (strpos($os, 'Windows') !== false) {
// dans le cas dWindowssystème,Utilisez des barres à barres comme séparateurs de chemin
$path_separator = '\\';
} else {
// Sinon, utilisez des slash vers l'avant
$path_separator = '/';
}
echo "Le séparateur de chemin est: " . $path_separator;
$os = php_uname('s'); // Obtenez le nom du système d'exploitation
if (strpos($os, 'Windows') !== false) {
// dans le cas dWindowssystème,Utilisez l'outil de ligne de commande
$command = 'dir';
} else {
// Autrement utilisationUnix类système的命令
$command = 'ls -l';
}
exec($command, $output);
echo implode("\n", $output); // Résultat d'exécution de la commande de sortie
Bien que PHP_UNAME () soit très utile, dans certains cas, l'obtention d'informations système peut fuir les informations sensibles du serveur, en particulier la version du système d'exploitation, etc. Par conséquent, dans un environnement de production, il est préférable d'éviter de distribuer ces informations aux utilisateurs. Envisagez de limiter les informations système obtenues aux fichiers journaux qui ne sont accessibles qu'aux administrateurs ou à l'ajout de vérifications d'autorisation appropriées au script.
Dans le développement réel, après avoir obtenu des informations sur le système, il peut être nécessaire de générer une URL spécifique en fonction de l'environnement du système. Par exemple, connectez-vous à différentes ressources de serveur en fonction de différents systèmes d'exploitation.