Требуется ли #! / Usr / bin / env для запуска PHP из командной строки? - PullRequest
25 голосов
/ 05 января 2012

Часто, когда я вижу PHP, предназначенный для запуска из командной строки, он будет иметь такую ​​строку #!/usr/bin/env php в верхней части файла, как это ...

#!/usr/bin/env php
<?php
    // code
?>

Я былхотите знать, предназначено ли это только для того момента, когда файл запускается в системе Linux / Unix или же необходимо для работы в Windows?

Ответы [ 2 ]

28 голосов
/ 05 января 2012

Строка hashbang необходима для автоматического определения типа скрипта.Это позволяет использовать этот вид использования:

[pfisher ~]$ chmod +x run-me.php
[pfisher ~]$ run-me.php

Эта строка не нужна, если вы передаете имя файла в качестве аргумента интерпретатору php, например:

1 голос
/ 05 января 2012

Нет, это не так, вы можете напрямую использовать

#!/path/to/php

Запуск php (или чего-либо еще) через утилиту env является слабой мерой безопасности.В зависимости от платформы, «зависая» от платформы, он «исправит» переменные PATH, LIB и другие переменные среды и, возможно, удалит некоторые опасные значения (например, env в HPUX).

Это также ограничивает область расширения оболочки в определенных средах.(Смотрите man 1 env в Linux).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...