2013-10-01 4 views
0

Привет У меня возникли проблемы, выполняющей этот хрон скрипт в терминале,Cron работа выполняется в браузере, но не в терминальных

http://subdomain.website.com/database.php?password=mypassword

Когда я вставить этот хрон сценарий в браузере он работает и загружает файл на моем локальном сервере, но в терминале он не выполняется, я читал многочисленные статьи в Интернете, и они говорят, что вы не можете использовать специальные аргументы в своем cron, как «? password = mypassword»

Я пытался заново изобретать эту команду много способов безрезультатно, curl, get, wget и wget -q тоже не работают.

ответ

1

Для выполнения PHP из командной строки с аргументами, вы называете это так:

$ php /path/to/php/file arg1 arg2 arg3 

Затем в вашем PHP скрипт вы получить доступ к списку аргументов, используя

$argv[0] // would return /path/to/php/file/ 
$argv[1] // returns arg1 
$argv[2] // returns arg2 

Если вы хотите сделайте свой сценарий так, чтобы к нему можно было получить доступ как через терминал, так и через браузер, вы можете сделать что-то вроде этого:

$password = isset($argv[1]) ? $argv[1] : $_GET['password']; 

Хотя, если вы используете это для CRON, и вам нужны аргументы, тогда ваша программная архитектура плохая. Вы должны жестко закодировать эти аргументы в своем скрипте, например переменную/свойство/etc.

+0

Вы правы, архитектура программы довольно плохая, спасибо за помощь, я должен бросить программу, если это дает мне эту проблему. – user2685272

Смежные вопросы