我正在玩一个必须从另一个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
在同一个文件夹中,如何从update.php
中调用serv.php
?
将serv.php的$argv从serv.php发送到update.php(请参阅http://php.net/manual/en/reserved.variables.argv.php)。也就是说,在update.php中,您将有另一个$argv,所以您必须用不同的名称发送数组中的命令行参数列表。
在调用PHP脚本中使用exec
或system
调用。请提及PHP CLI的完整路径,即/user/bin/PHP或服务器中的任何路径。
您可以使用exec
函数执行系统命令。PHP exec()。
您可以从update.php
脚本中调用页面serv.php
作为
exec('php c:'path_to_folder'serv.php run --argument1="some_text" --argument2="some_text" --port=some_port');
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
。$argv[0]
是文件路径
请注意,每个空格都定义了一个新的参数