Мой 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] будет нулевым?
Согласно руководство argv — это массив строк. Вы сравниваете с RUN
, но это должно быть 'RUN'
чтобы указать, что Run также является строкой. В противном случае он попытается найти переменную RUN
который не определен и, следовательно, не будет равен argv[1]
Вы должны написать в своем условии, если
if ($argv[1] == "RUN") {...
потому что слово «RUN» — это строка, получаемая из командной строки.