За последние 24 часа нас посетили 18055 программистов и 1676 роботов. Сейчас ищут 1052 программиста ...

Передача огромных параметров скрипту

Тема в разделе "PHP для профи", создана пользователем eurobax, 20 май 2018.

Метки:
  1. eurobax

    eurobax Активный пользователь

    С нами с:
    25 ноя 2009
    Сообщения:
    8
    Симпатии:
    0
    Помогите разобраться, на практике затык...
    Один скрипт запускает фоновый процесс другого скрипта

    PHP:
    1. $f = popen('start /B php -f ' . __DIR__ . '/bg_service.php');
    И должен ему передать текст порядка 10 Мб
    "Фоновый" скрипт должен прочитать его как STDIN
    Пробовал так:

    start.php:
    PHP:
    1. <?php
    2.     function execBg($cmd, $data){
    3.         echo "<br>" . $cmd . ' ' . $data ;
    4.         if(substr(php_uname(), 0, 7) == "Windows"){
    5.             $f = popen("start /B ". $cmd, "w");
    6.             file_put_contents($f, $data);
    7.             pclose($f);
    8.         }else{
    9.             exec($cmd . " > /dev/null &");
    10.         }
    11.     }
    12.  
    13.     execBg('php -f ' . __DIR__ . '/bg_service.php',
    14.         urlencode(
    15.             json_encode(array(1,2,3))
    16.         )
    17.     );
    18. ?>
    bg_service.php:
    PHP:
    1. <?php
    2.  
    3. file_put_contents(__DIR__ . '/log.htm', file_get_contents('php://stdin'));
    4.  
    5. ?>

    В логе ничего нет!
    --- Добавлено ---
    Разобрался!
    Не file_put_contents, а fputs