在PHP中将参数传递给system()函数

时间:2015-02-12 18:00:31

标签: php linux

我想在以下函数上传递参数:

system(“/ usr / bin / nohup / usr / bin / php -q /var/www/vhosts/example.com/httpdocs/foldername/filename.php> / dev / null 2> / dev / null &安培;“);

我尝试过以下事情,但没有运气。

  1. system(“/ usr / bin / nohup / usr / bin / php -q /var/www/vhosts/example.com/httpdocs/foldername/filename.php?abc=123> / dev / null 2> / dev / null&“);

  2. system(“/ usr / bin / nohup / usr / bin / php -q /var/www/vhosts/example.com/httpdocs/foldername/filename.php abc = 123> / dev / null 2> ; / dev / null&“);

  3. 请解释我如何传递参数以及如何在此example.php文件中获取此参数值。

    由于

1 个答案:

答案 0 :(得分:1)

命令行php不接受获取字符串。它是一个文件,而不是一个网址。您可以将参数传递给文件,就像任何命令行脚本(空格分隔的单个单词或带引号的字符串)一样,并通过$argv访问它们。您可以在手册中阅读有关php命令行用法的更多信息:

php.net/manual/en/features.commandline.php php.net/manual/en/reserved.variables.argv.php

您还可以传递查询字符串格式化的字符串(我建议引用它)并使用parse_str来获取键/值。

Cmd line:php scriptName.php "foo=1&bar=2"

脚本中的

$queryString = parse_str($argv[1]);
//and now you have:
$queryString['foo']; //equals 1
$queryString['bar']; //equals 2