命令行脚本 PHP 不运行

Posted

技术标签:

【中文标题】命令行脚本 PHP 不运行【英文标题】:Command-line script PHP does not run 【发布时间】:2012-02-16 07:23:18 【问题描述】:

我正在尝试构建一个 php 脚本来手动处理数据,以便稍后将其转换为 cronjob。该脚本还从 mysql 和第三方SOAP 接口获取数据。当我尝试从命令行运行它时出现错误并且脚本没有运行。

它显示:

./test.php: line 1: ?php: No such file or directory
Enter a number:
./test.php: line 5: syntax error near unexpected token `('
./test.php: line 5: `$line = trim(fgets(STDIN));'

这是我的脚本中的内容:

echo 'Enter a number: ';
$line = trim(fgets(STDIN));
var_dump($line);

我知道这个脚本有效。怎么了?

【问题讨论】:

【参考方案1】:

您收到此错误是因为您像 ./script.php 一样执行此脚本。为了确保 PHP 脚本能够正确理解和运行,您必须在脚本顶部包含 #!/usr/bin/php

例子:

#!/usr/bin/php
<?php
echo 'Enter a number:';
$line = trim(fgets(STDIN));
var_dump($line);

如果 PHP 安装在 /usr/bin 文件夹中。如果没有,你可以使用locate php 命令验证,然后使用正确的路径。

或者另一种选择是

php /path/to/script.php

【讨论】:

以上是关于命令行脚本 PHP 不运行的主要内容,如果未能解决你的问题,请参考以下文章

将变量传递给从命令行运行的 PHP 脚本

从命令行运行 PHP 脚本

从哪里开始使用 CPanel 托管在 PHP 中运行命令行

如何通过命令行运行 php 脚本(并在注销后保持运行)

如何通过Linux命令行使用和运行PHP脚本

如何通过命令行在服务器上运行php脚本