#!/usr/bin / env requis pour exécuter PHP depuis la ligne de commande?
souvent quand je vois PHP qui est destiné à être exécuté à partir de la ligne de commande, il aura cette ligne #!/usr/bin/env php
en haut du fichier comme ceci...
#!/usr/bin/env php
<?php
// code
?>
je voulais savoir si c'est fait juste pour quand le fichier est exécuté sur un système Linux/Unix ou est nécessaire pour l'exécution sous Windows?
2 réponses
la ligne" hashbang " est nécessaire pour la détection automatique du type de script. Il permet à ce type d'utilisation:
[pfisher ~]$ chmod +x run-me.php
[pfisher ~]$ run-me.php
cette ligne n'est pas nécessaire si vous passez le nom du fichier comme argument à l'interpréteur php, comme ceci:
[pfisher ~]$ php run-me.php
non ce n'est pas, vous pouvez directement utiliser
#!/path/to/php
exécuter php (ou n'importe quoi d'autre) à travers l'utilitaire env est une mesure de sécurité faible. Dpending sur la plate-forme, sera "corrigé" CHEMIN d'accès, LIB, et d'autres variables d'environnement en fonction de divers fichiers de configuration et de potentiellement supprimer certaines des valeurs dangereuses (par exemple, env sur HPUX).
il s'agit également de limiter la portée des extensions shell sur certains environnements. (Voir man 1 env sur Linux).