Независимая работа двух скриптов

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

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

    kud Постоялец

    Регистр.:
    18 фев 2009
    Сообщения:
    89
    Симпатии:
    11
    Есть скрипт a.php, который должен запустить скрипт b.php с передачей одного get параметра .. Как заставить продолжить работать дальше скрипт a.php не дожидаясь когда закончит работу b.php ?
    пробовал через curl запускать, но что-то не клеится .. сейчас запускаю через curl с опцией:
    PHP:
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    Пробовал:
    PHP:
    curl_setopt($chCURLOPT_NOBODY1);
    Но что-то не выходило .. Вернее, первая часть скрипта b.php выполняась, а вторая (аплоад на сервер) нет ..
    Как правильно вызвать b.php?
     
  2. waldicom

    waldicom Создатель

    Регистр.:
    15 мар 2009
    Сообщения:
    41
    Симпатии:
    3
    Файл b.php можно вызвать через веб?
     
  3. ПроФ

    ПроФ Создатель

    Регистр.:
    5 июн 2009
    Сообщения:
    25
    Симпатии:
    6
    Было бы ещё неплохо узнать зачем именно это вам? Напишите, может можно реализовать проще...;)
     
  4. kud

    kud Постоялец

    Регистр.:
    18 фев 2009
    Сообщения:
    89
    Симпатии:
    11
    А что тут непонятного ? есть скрипт a.php который выполняет свою работу ..
    Допустим цикл:
    PHP:
    foreach ($arr as $k => $v) {
      
    // бла бла бла
      // ну и в самом конце нужно запустить b.php что-б он работал, и продолжил работать foreach

    }
    Добавлено через 1 минуту
    не совсем понял что Вы имеете ввиду..
     
  5. roddik

    roddik Колбаска

    Регистр.:
    26 янв 2007
    Сообщения:
    351
    Симпатии:
    285
  6. TrojaNFlash

    TrojaNFlash Прохожие

  7. SolarWind

    SolarWind Создатель

    Регистр.:
    18 авг 2008
    Сообщения:
    42
    Симпатии:
    11
    еще можно запустить второй скрипт, примерно так:
    exec("/usr/bin/php ./child_script.php > /dev/null 2>&1 &");
    правда, если скрипт работает в окружении сервера, возможно, предварительно понадобится сделать экспорт некоторых переменных, вроде SCRIPT_FILENAME
     
  8. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    990
    Симпатии:
    267
    Если скрипт через браузер запускается, то можно попробовать бекэндом через Ajax запустить. Однако извращений будет куча.
     
  9. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    пример на сокетах(делал таким образом самовызов скрипта, чтобы выполнялся бесконечно:(
    PHP:
    <?php
    $host
    ="www.vasya.com";
    $refer="http://localhost";
    $zap="/b.php?blabla=123";
    $fp=fsockopen($host,80);
    $get="GET $zap HTTP/1.1\r\nHost: $host\r\nReferer: $refer\r\nUser-Agent: Mozilla 4.0\r\n\r\n";
    fwrite($fp,$get);
    fclose($fp);
    ?>
     
  10. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    если делать через сокеты, тогда соединения будеть жить пока работает скрипт, либо пока оно не оборвется, таймаутом например..

    если запускаемый скрипт должен работать в фоне и запускающий скрипт не должен получать данные с него (тупо запустить и все) то лучше воспользоватся таким кодом:

    PHP:
    pclose(popen('/usr/bin/php /home/user/httpdocs/script.php >> /dev/null &''r'));
    вывод скрипт идет в /dev/null
     
Статус темы:
Закрыта.