Как запустить php скрипт с параметром по крону

Тема в разделе "Как сделать...", создана пользователем andrey82, 9 мар 2009.

Статус темы:
Закрыта.
  1. andrey82

    andrey82 Читатель

    Заблокирован
    Регистр.:
    10 янв 2009
    Сообщения:
    80
    Симпатии:
    22
    Как запустить php скрипт с параметром по крону, надо чтобы запускался скрипт с параметром вида
    Обращаюсь браузером к скрипту, все работает, прописываю в крон, не работает. Что надо прописать в кроне, чтобы он запускался?
     
  2. ModeX

    ModeX Прохожие

    Как прописываешь?
    Есть ли на хостинге wget?
     
  3. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    Необходимо запускать через wget

    типа
    wget -q Перейти по ссылке

    q - необязательный параметр который говорит о том что ненадо отсылать по почте результаты выполнения задания cron
     
  4. studentpm

    studentpm

    Регистр.:
    8 ноя 2006
    Сообщения:
    184
    Симпатии:
    132
    Вообще говоря есть массив $argv в который складываются параметры вызова.
    Т.е. если запускаешь так:
    php -f /path/to/script.php q=Перейти по ссылке
    то получишь массив вида:
    array(2) {
    [0]=>
    string(26) "php -f /path/to/script.php"
    [1]=>
    string(7) "q=3S3S0"
    }

    запускать через wget вообще в корне не верно.
     
  5. andrey82

    andrey82 Читатель

    Заблокирован
    Регистр.:
    10 янв 2009
    Сообщения:
    80
    Симпатии:
    22
    Поподробнее пожалуйста, а то попробовал сделать, по совету o_nix, работать то работает, но обращений к скрипту зачем-то сразу несколько, хотя поставил, каждые 3 часа. Разъясните, пожалуйста, что куда и где прописывать.
     
  6. studentpm

    studentpm

    Регистр.:
    8 ноя 2006
    Сообщения:
    184
    Симпатии:
    132
    Для общего развития почитай:
    http://ru2.php.net/manual/ru/features.commandline.php
    А вот это вставь в начало скрипта своего
    PHP:
    if(isset($argv[0]) && sizeof($argv) > 1)
    {
        unset(
    $argv[0]);
        foreach(
    $argv as $arg)
        {
            
    $tmp explode('='$arg);
            
    $_GET[$tmp[0]] = $tmp[1];
        }
    }
    И запускай как
    Код:
    php -f /path/to/script.php q=Перейти по ссылке
    Получишь в $_GET все свои параметры.
     
  7. andrey82

    andrey82 Читатель

    Заблокирован
    Регистр.:
    10 янв 2009
    Сообщения:
    80
    Симпатии:
    22
    /path/to/ это полный путь до скрипта, от корня?
     
  8. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Да, от корня.
     
Статус темы:
Закрыта.