如何通过网页将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