从命令行执行 PHP 脚本时,经常需要传入变量。但是,尝试使用传统的 $_GET 方法(例如 php myfile.php?type=daily)来实现此目的可能会导致“无法打开输入文件”错误。
这是因为 $_GET 数组通常仅当脚本作为网页执行时才可访问。要处理从命令行传递的变量,必须使用替代方法。
从命令行运行 PHP 脚本时,可以使用 $argv 传递变量大批。该数组包含脚本名称后提供的参数。例如,要传递 type=daily 变量,您可以按如下方式调用脚本:
php myfile.php daily
在 PHP 脚本中,您可以使用 $argv[1].
处理 Web 和命令行执行如果 PHP 脚本既用于 Web 又用于命令行执行,您可以使用以下命令检查脚本是否从命令行调用STDIN 常量。以下代码片段说明了这一点:if (defined('STDIN')) { $type = $argv[1]; } else { $type = $_GET['type']; }在此示例中,如果从命令行执行脚本,将从 $argv[1] 检索类型变量。否则,将从 $_GET['type'] 中检索。使用 Shell 脚本和 Wget从命令行传递变量的另一个选项是使用 shell 脚本和 Wget 。如果您需要将变量作为 URL 的一部分传递,这会很有用。以下 shell 脚本演示了这种方法:
#!/bin/sh wget http://location.to/myfile.php?type=daily在此脚本中,变量 type=daily 作为 URL 的一部分传递。然后可以从 cron 调用该脚本以使用指定变量执行 PHP 脚本。
以上是如何从命令行将变量传递给 PHP 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!