0

我正在玩一个我必须从另一个 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

4

4 回答 4

1

将 serv.php 的 $argv 从 serv.php 发送到 update.php(参见http://php.net/manual/en/reserved.variables.argv.php)。即在update.php 中,您将拥有另一个$argv,因此您必须以不同名称发送数组中的命令行参数列表。

于 2013-09-02T09:14:40.540 回答
0

在您的调用 PHP 脚本中使用exec或调用。system请务必提及 PHP CLI 的完整路径,即 /user/bin/php 或服务器中的任何路径。

于 2013-09-02T09:14:45.453 回答
0

exec您可以使用该功能执行系统命令。PHP 执行()

serv.php您可以从update.php脚本中调用您的页面

exec('php c:\path_to_folder\serv.php run --argument1="some_text" --argument2="some_text" --port=some_port');
于 2013-09-02T09:15:39.153 回答
0
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]isphp -fphp5-cli,".dirname(__FILE__)."/sendmail.php是文件的路径,其他是参数 。
要检索传递的参数,使用$argv包含所有其他参数$argv[0]的文件路径。
请注意,每个空格定义一个新参数

于 2013-09-02T09:26:43.427 回答