使用参数运行/执行 php 脚本

2022-08-30 13:07:41

我需要通过shell执行一个带有参数的php文件。

以下是我如何运行php文件:

php -q htdocs/file.php

我需要传递参数“show”并

php -q htdocs/file.php?show=show_name

不起作用

如果有人可以向我详细说明要执行什么命令以使php文件使用设置的参数执行,那将不胜感激。如果没有,试着引导我正确的方向。


答案 1

测试.php:

<?php
print_r($argv);
?>

壳:

$ php -q test.php foo bar
Array
(
    [0] => test.php
    [1] => foo
    [2] => bar
)

答案 2

如果你有Web服务器(不仅安装了php解释器,而且安装了LAMP / LNMP / etc) - 试试这个

wget -O - -q -t 1 "http://mysite.com/file.php?show=show_name" >/dev/null 2>&1

哪里:

  • « -O - » — (字母“O”,不是零!)将“下载的html”重定向到stdout
  • « >/dev/null 2>&1 » — 重定向 stdout & stderr 输出到无处可去
  • « -q » — 安静运行
  • « -t 1 » — 只需 1 次尝试连接(不像默认的 20)

在PHP的“exec”中,它将是这样的:

function exec_local_url($url) {
  exec('/usr/bin/wget -O - -q -t 1 "http://'. $_SERVER['HTTP_HOST'] .'/'
    . addslashes($url) . '" >/dev/null 2>&1'
  );
}

// ...

exec_local_url("file.php?show=show_name");
exec_local_url("myframework/seo-readable/show/show_name");

因此,您无需更改脚本来处理 argc/argv,并且可以像往常一样使用 $_GET。

如果你想在后台运行作业 - 参见例如Unix/Windows,安装程序后台进程?从php代码

我在我的cron工作中使用wget的方法;希望它有帮助。


推荐