如何通过网页将parameter passing给PHP脚本?

我正在调用一个PHP脚本,每当网页加载。 但是,PHP脚本需要运行一个参数(我通常在testing脚本时通过命令行)。

如何在页面加载时每次运行脚本时传递此参数?

据推测你是在命令行上传递参数如下:

php /path/to/wwwpublic/path/to/script.php arg1 arg2 

…然后在脚本中访问它们:

 <?php // $argv[0] is '/path/to/wwwpublic/path/to/script.php' $argument1 = $argv[1]; $argument2 = $argv[2]; ?> 

在通过HTTP传递参数(通过Web访问脚本)时需要做的事情是使用查询string并通过$ _GET superglobal访问它们:

转到http://yourdomain.com/path/to/script.php?argument1=arg1&argument2=arg2

…和访问:

 <?php $argument1 = $_GET['argument1']; $argument2 = $_GET['argument2']; ?> 

如果你想让脚本运行而不pipe你从哪里(命令行或浏览器)调用脚本,你需要如下的东西:

编辑:正如Cthulhu在评论中指出的那样,testing你正在执行的环境的最直接的方法是使用PHP_SAPI常量。 我已经相应地更新了代码:

 <?php if (PHP_SAPI === 'cli') { $argument1 = $argv[1]; $argument2 = $argv[2]; } else { $argument1 = $_GET['argument1']; $argument2 = $_GET['argument2']; } ?> 
 $argv[0]; // the script name $argv[1]; // the first parameter $argv[2]; // the second parameter 

如果你想让所有的脚本运行而不pipe你从哪里(命令行或浏览器)调用它,你需要如下的东西:

 <?php if ($_GET) { $argument1 = $_GET['argument1']; $argument2 = $_GET['argument2']; } else { $argument1 = $argv[1]; $argument2 = $argv[2]; } ?> 

从命令行调用chmod 755 /var/www/webroot/index.php并使用

 /usr/bin/php /var/www/webroot/index.php arg1 arg2 

要从浏览器中调用,请使用

 http://www.mydomain.com/index.php?argument1=arg1&argument2=arg2