我正在玩一个我必须从另一个php文件调用的脚本。从文件update.php
开始,我必须通过调用其文件serv.php
来启动脚本。但是,为了serv.php
能够工作,我不得不传递一些论点。从命令行启动serv.php
的命令如下:
php c:\path_to_folder\serv.php run --argument1="some_text" --argument2="some_text" --port=some_port
如果我们假设update.php
和serv.php
位于同一个文件夹,那么如何从serv.php
内拨打update.php
?
答案 0 :(得分:1)
从serv.php发送$ argv的serv.php到update.php(参见http://php.net/manual/en/reserved.variables.argv.php)。即在update.php中你将有另一个$ argv,所以你必须在不同名称的数组中发送命令行参数列表。
答案 1 :(得分:0)
在您调用的PHP脚本中使用exec
或system
调用。提到PHP CLI的完整路径,即/ user / bin / php或服务器中的任何路径。
答案 2 :(得分:0)
您可以使用exec
功能执行系统命令。 PHP exec()
您可以从serv.php
脚本中调用您的网页update.php
exec('php c:\path_to_folder\serv.php run --argument1="some_text" --argument2="some_text" --port=some_port');
答案 3 :(得分:0)
shell_exec("php c:\path_to_folder\serv.php some_text some_text some_port ");
通常是php -f
或php5-cli
而不是php
,有些服务器甚至不需要php文件夹的路径
这是我的疑问之一:
$ex=$setting[8]." ".dirname(__FILE__)."/sendmail.php NewMem ".$_SESSION['id']." ";
if(substr(php_uname(), 0, 7) == "Windows")
pclose(popen("start /B ".$ex,"r")); /windows server
else
shell_exec($ex." > /dev/null 2>/dev/null &");//Apache
其中$setting[8]
为php -f
或php5-cli
,".dirname(__FILE__)."/sendmail.php
是文件的路径,其他是参数。
要检索传递的参数,使用包含所有其他参数$argv
的{{1}}是文件路径
请注意,每个空格都定义了一个新参数