Передайте переменную в php-скрипт, запускаемый из командной строки

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

php myfile.php?type=daily

, но вернулась эта ошибка:

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

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

71
задан Arnaud 30 August 2017 в 02:51
поделиться

1 ответ

Существует 4 основных альтернативы, у обоих есть их причуды, , Метод 4 имеет много преимуществ от моего представления.

<час>

./script сценарий оболочки , запускающийся #!/usr/bin/php

<час>

Метод 1: $argv

./script hello wo8844rld
// $argv[0] = "script", $argv[1] = "hello", $argv[2] = "wo8844rld"   

вљ пёЏ Используя $argv, порядок параметрических усилителей очень важен.

<час>

Метод 2: getopt ()

./script -p7 -e3
// getopt("p::")["p"] = "7", getopt("e::")["e"] = "3"

трудно использовать в соединении $argv, потому что:

вљ пёЏ парсинг опций закончится в первой найденной неопции, что-либо, что следует, отбрасывается.

вљ пёЏ Только 26 параметрических усилителей как алфавит.

<час>

Метод 3: Глобальная переменная Bash

P9="xptdr" ./script
// getenv("P9") = "xptdr"
// 

Существует 4 основных альтернативы, у обоих есть их причуды, , Метод 4 имеет много преимуществ от моего представления.

<час>

./script сценарий оболочки , запускающийся #!/usr/bin/php

<час>

Метод 1: $argv

[110]

вљ пёЏ Используя $argv, порядок параметрических усилителей очень важен.

<час>

Метод 2: getopt ()

[111]

трудно использовать в соединении $argv, потому что:

вљ пёЏ парсинг опций закончится в первой найденной неопции, что-либо, что следует, отбрасывается.

вљ пёЏ Только 26 параметрических усилителей как алфавит.

<час>

Метод 3: Глобальная переменная Bash

[112]

Те переменные могут использоваться другими программами, работающими в той же оболочке.

Они унесены, когда оболочка закрывается, но не, когда php программа завершается. Мы можем установить их постоянный в [1 110]!

<час>

Метод 4: канал STDIN и stream_get_contents ()

Некоторые примеры передачи по каналу:

<час>
./script <<< "hello wo8844rld"
// stream_get_contents(STDIN) = "hello wo8844rld"
<час>
echo "hello wo8844rld" | ./script
// explode(" ",stream_get_contents(STDIN)) ...
<час>
./script < ~/folder/Special_params.txt
// explode("\n",stream_get_contents(STDIN)) ...
<час>
echo params.json | ./script
// json_decode(stream_get_contents(STDIN)) ...

Мы можем передать очень длинные строки, массивы, json, конфигурация файл, содержащий строки параметров, это мощно.

Это могло бы работы similary с освобожденным () или fgets () путем чтения STDIN.

<час>

Руководство по созданию сценариев Bash

SERVER["P9"] = "xptdr"

Те переменные могут использоваться другими программами, работающими в той же оболочке.

Они унесены, когда оболочка закрывается, но не, когда php программа завершается. Мы можем установить их постоянный в [1 110]!

<час>

Метод 4: канал STDIN и stream_get_contents ()

Некоторые примеры передачи по каналу:

<час>
./script <<< "hello wo8844rld"
// stream_get_contents(STDIN) = "hello wo8844rld"
<час>
echo "hello wo8844rld" | ./script
// explode(" ",stream_get_contents(STDIN)) ...
<час>
./script < ~/folder/Special_params.txt
// explode("\n",stream_get_contents(STDIN)) ...
<час>
echo params.json | ./script
// json_decode(stream_get_contents(STDIN)) ...

Мы можем передать очень длинные строки, массивы, json, конфигурация файл, содержащий строки параметров, это мощно.

Это могло бы работы similary с освобожденным () или fgets () путем чтения STDIN.

<час>

Руководство по созданию сценариев Bash

0
ответ дан 24 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: