#!/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?

21
demandé sur JasonDavis 2012-01-05 09:01:11

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
24
répondu Patrick Fisher 2012-01-05 05:05:25

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).

1
répondu Ahmed Masud 2012-01-05 05:14:54