Передайте переменную в php скрипт, запущенный из командной строки - PullRequest
68 голосов
/ 26 июля 2011

У меня есть файл PHP, который необходимо запустить из командной строки (через crontab). Мне нужно передать type=daily в файл, но я не знаю как. Я попробовал:

php myfile.php?type=daily

но эта ошибка была возвращена:

Не удалось открыть входной файл: myfile.php? Type = daily

Что я могу сделать?

Ответы [ 12 ]

2 голосов
/ 10 марта 2013
<?php
if (count($argv) == 0) exit;
foreach ($argv as $arg)
echo $arg;
?>

Этот код не должен использоваться. Прежде всего, CLI, вызываемый как: / usr / bin / php phpscript.php будет иметь одно значение argv, которое является именем скрипта

array(2) {
   [0]=>
   string(13) "phpscript.php"
}

Это всегда будет выполняться, так как будет иметь 1 или 2 аргумента passe

0 голосов
/ 17 июля 2017
if (isset($argv) && is_array($argv)) {
    $param = array();
    for ($x=1; $x<sizeof($argv);$x++) {
        $pattern = '#\/(.+)=(.+)#i';
        if (preg_match($pattern, $argv[$x])) {
            $key =  preg_replace($pattern, '$1', $argv[$x]); 
            $val =  preg_replace($pattern, '$2', $argv[$x]);
            $_REQUEST[$key] = $val;
            $$key = $val;
        }    
    }
}

Я помещаю параметры в $ _REQUEST

$ _ REQUEST [$ key] = $ val;

, а также используется непосредственно

$$ key = $ val

используйте это так:

myFile.php / key = val

...