使用另一个php文件中的参数执行php脚本


Execute php script with arguments from another php file

我正在玩一个必须从另一个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.phpserv.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脚本中使用execsystem调用。请提及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 -fphp5-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 -fphp5-cli".dirname(__FILE__)."/sendmail.php是文件的路径,其他是自变量
要检索传递的参数,请使用包含所有其他参数的$argv$argv[0]是文件路径
请注意,每个空格都定义了一个新的参数