PHP命令行argv [1]始终为null

时间:2015-05-05 20:02:36

标签: php argv

我的php脚本是这样的:

<?php
if ($argv[1] == 'RUN') {
    //a URL you want to retrieve
    $my_url = 'thisURL.com';
    $html = file_get_contents($my_url);
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    $xpath = new DOMXPath($dom);

    ...

    $fp = fopen('standings.json', 'w');
    fwrite($fp, json_encode($teamInfoArrays));
    fclose($fp);
} else {
    $data = file_get_contents ('standings.json');
    echo $data;
}
?>

但是当我使用命令

从命令行运行我的php脚本时
php /home/usrname/public_html/standings.php RUN

不符合“if”功能,它执行“else”部分。为什么argv [1]会为空?

2 个答案:

答案 0 :(得分:0)

根据manual argv是一个字符串数组。您正在与RUN进行比较,但这应该是'RUN'以指示Run也是一个字符串。否则,它将尝试查找未定义的变量RUN,因此不等于argv[1]

答案 1 :(得分:0)

你应该写下你的if条件

 if ($argv[1] == "RUN") {...

因为&#34; RUN&#34; word是从命令行获取的字符串。