J'ai un script PHP qui peut être placé sur un système Windows ou un système Linux. J'ai besoin d'exécuter des commandes différentes dans chaque cas.
Comment puis-je détecter dans quel environnement je me trouve ? (de préférence quelque chose en PHP plutôt que des astuces système ingénieuses)
Mise à jour
Pour clarifier, le script s'exécute en ligne de commande.
0 votes
Après avoir effectué des benchmarks, il semble que les différences de performance entre
\strncasecmp(\PHP_OS, 'WIN', 3) === 0
,\strtoupper(\substr(\PHP_OS, 0, 3)) === 'WIN'
et\stripos(\PHP_OS, 'WIN')
sont inférieures à 15%. Étant donné que les trois solutions ne prennent que environ 100 nanosecondes, cela relèverait d'une micro-optimisation de toute façon. Donc choisissez la solution que vous préférez. Enfin, vous pouvez argumenter que\strncasecmp(\PHP_OS, 'WIN', 3) === 0
est la plus lisible.