Как подать каманду одну за одной?

Тема в разделе "PHP", создана пользователем Ewsen, 23 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Ewsen

    Ewsen

    Регистр.:
    26 июл 2008
    Сообщения:
    163
    Симпатии:
    59
    Есть файл /include/run.php
    На него нужно подавать команды из файла index.php
    Команды такого типа /include/run.php?a=znachenie&b=znachenie
    значения a и b берутся из списка базы данных
    После обработки команды, подается следующая с другими значениями
    Акцентирую именно на полной обработке команды. Только после этого должна выполняться следующая.
    Вопрос может и дурацкий, но никак догнать не могу. Совсем недавно начал изучать PHP
     
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    ну дергай курлом, делов то, курл ждет ответа от скрипта
    или файловой функцией и потом sleep(30) -- задержка на максивальное время исполнения скрипта
     
  3. Ewsen

    Ewsen

    Регистр.:
    26 июл 2008
    Сообщения:
    163
    Симпатии:
    59
    А можно хоть пример кода с курлом?
    Идея со sleep(30)не подходит. Время исполнения скрипта не ограничено и варьируется очень сильно (это скрипт парсинга поисковика). Поэтому надо подавать вторую команду только тогда, когда он обработал полностью первую и переконнектил интернет (переконнект я реализовал не без вашей помощи http://www.nulled.ws/showthread.php?t=136224).
    Многопоточность не нужна.
     
  4. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437

    PHP:
    <?php
    set_time_limit
    (0);
    function 
    curl_ini(){
    $ch curl_init();
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);

        
    // тут время в секундах на совершение операции. Теоретически 0-бесконечность
        // но раз уж в документации этого не сказано, просто ставим большое число
        // надеюсь твои скрипты пинга не вечные
        
    curl_setopt($chCURLOPT_TIMEOUT,9999999);

        return 
    $ch;}
          
    function 
    get_file_by_curl($url){
        
    $ch=curl_ini();
        
    curl_setopt($chCURLOPT_URL,$url);
        
    $result=curl_exec ($ch);
        return 
    $result;}
        

    // тут твой код ....


    // тут место где ты вызываешь скрипт
    $rezult=get_file_by_curl("http://tvoy_servak/super_script.php?a=gde&bb=to&c=tak")

    // тут пошел код после вызова скрипта

    ?>




    единсвенное: лучше если твой скрипт , который ты будешь дергать, в конце своей работы выведет хотя бы точку, для верности

    или будет выводить что-то все время работы, что бы курл не уснул на всякий случай

    если нужна дополнительная проверка -- смотри наличие нужной одстроки в тот что выдал скрипт ( переменная $result )


     
    Ewsen нравится это.
  5. Ewsen

    Ewsen

    Регистр.:
    26 июл 2008
    Сообщения:
    163
    Симпатии:
    59
    Файл super_script.php не исполняет. Что не так?
     
  6. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    Ты посмотри на свое сообщение и подумай, если не ясно -- подумай еще , повторять в цикле ( вообще-то тут было : ***ть! Я ебу? )

    Код в студию, иначе я не скажу

    что в $result ?
     
  7. midw0rk

    midw0rk Создатель

    Регистр.:
    1 окт 2008
    Сообщения:
    33
    Симпатии:
    7
  8. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    тут нет многопоточности, хотя бы потому что все завязано на выполнение ОДНОГО ОДНОПОТОЧНОГО скрипта ( смена соединения )
     
  9. Ewsen

    Ewsen

    Регистр.:
    26 июл 2008
    Сообщения:
    163
    Симпатии:
    59
    Все, разобрался. Код работает как надо. Я баран даже не знал, что курл надо установить на денвер:nezn:
     
  10. .WishMaster.

    .WishMaster. Создатель

    Регистр.:
    15 июл 2009
    Сообщения:
    27
    Симпатии:
    0
    Если в файле /include/run.php имеется просто набор каких то функций, которым передается набор значений, то почему бы просто не подключить данный файл и циклом не передавать значения и получать результат?
    ИМХО так же проще...
     
Статус темы:
Закрыта.