通常当我看到要从命令行运行的PHP时,它会在文件顶部有这一行#!/usr/bin/env php
,就像这样......
#!/usr/bin/env php
<?php
// code
?>
我想知道这是否仅适用于在Linux / Unix系统上运行文件或在Windows上运行时是否需要?
答案 0 :(得分:27)
自动检测脚本类型需要“hashbang”行。它实现了这种用法:
[pfisher ~]$ chmod +x run-me.php
[pfisher ~]$ run-me.php
如果将文件名作为参数传递给php解释器,则不需要该行,如下所示:
[pfisher ~]$ php run-me.php
答案 1 :(得分:1)
不,不,你可以直接使用
#!/path/to/php
通过env实用程序运行php(或其他任何东西)是一种弱安全措施。根据平台,将根据各种配置文件“修复”PATH,LIB和其他环境变量,并可能删除其中的一些危险值(例如,HPUX上的env)。
它还限制了某些环境中shell扩展的范围。 (参见Linux上的man 1 env。)
答案 2 :(得分:0)
id
)chmod +x FILE
-> /usr/bin/env cliVersion
或者使用例如:
/usr/bin/env php
在脚本的第一行没有 php8.0 /to/php/script.php
的情况下运行它。
(即使它留在那里也能工作,但如果对你很重要,请检查执行时的真实 php 版本)
“标准”?过去 10 年是 shebang
,具体取决于您在系统上设置的默认版本:
debian 系统(debian、unbuntu、kubuntu...):/usr/bin/env
将指导您