Exec с параметром

Discussion in 'PHP' started by Krist_ALL, 8 Aug 2009.

  1. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Нужно запустить пхп скрипт отдельна чтоли. Думаю юзать exec ,но мне нада еще параметр передать скрипту. И чтоб скрипт в котором команда exec не ждал выполнения скрипта в параметрах.
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Попробуй запускать через passthru, только вывод перенаправь в /dev/null
     
    _________________________
  3. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Каким образом я через эту команду передам параметры скрипту? Нее.Ченить другое.
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    А в чем проблема написать типа

    passthru("ls -lia > /dev/null"); ?

    Или там если параметры в плане $_GET переменной, то запускай типа
    passthru("lynx --dump http://site.ru/script.php?.... > /dev/null");
     
    _________________________
  5. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Изврат дальше некуда!
    Попроще какнибудь) нужно запустить скрипт ипередать ему парметр один и пусть он выполняется скока хочет. А основной скрипт дальше делает свое дела не дожидаясь когда выполнится скрипт который запустить нада.
     
  6. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    file_get_contents('http://site.ru/script.php?.....');
     
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Ну обратись через сокеты или курл с минимальным таймаутом...
     
    _________________________
  8. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Мне не нада ждать пока выполнится второй скрипт
     
  9. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Фаэр феникс, твой вариант у меня был как запасной... Я не понял,как запустить в unix and windows с аргументами? Пхп.Ехе -... Итд? А в юникс? И все же эт не оч то шо мне нада...Нада средствами пхп.
     
  10. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    PHP:
     $query “POST ” $url_info[path] . ” HTTP/1.1\r\n”;
                
    $query $query “Content-Typetext/xml\r\n”;
                
    $query $query “Host” $url_info[host] . \r\n”;
                
    $query $query “Content-length” . (strlen($request)) . \r\n\r\n”;
                
    $query $query $request;

                
    // создаем сокет, переводим его
                // в неблокирующий режим и запускаем
                
    $errno 0;
                
    $error “”;

                
    $socket fsockopen($url_info[host], $url_info[port], $errno$error30);
                
    stream_set_blocking($socket0);
                
    fputs($socket$query);
    http://www.stableversion.com/node/3
     
    5 people like this.
  11. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    Вставляешь в начало скрипта который надо вызывать из консоли
    PHP:
    foreach ($argv as $params
        { 
            list(
    $key$value) = explode("="$params); 
            
    $_GET[$key] = $value;
        }  
    в итоге все параметры из $argv преобразуются в $_GET
    вызываем так:
    Code:
    php file.php param1=value param2=value
    по аналогии можно и под $_POST сделать ... и вобще под что угодно)
     
    #11 Sharky, 8 Aug 2009
    Last edited: 9 Aug 2009
  12. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    А что никсы? Пхп же тотжий => запуск одинаковый
    пример

    index.php
    PHP:
    <?php

    system
    ('php -f C:\shell.php +site http://google.ru +file C:\result.html');

    ?>
    Ну пути для никсов будут другие только :)

    shell.php
    PHP:
    <?php

    if ($argc == || $argc == 5)
    {
      if (
    $argv[1] == '+site')
      {
        
    $site $argv[2];
      }
      
      
    $content file_get_contents($site);
      
      if (
    $argc == 5)
      {
        if (
    $argv[3] == '+file')
        {
          
    $file $argv[4];
          
          if (
    strlen(trim($file)) > 0)
          {
            
    file_put_contents($file$content);
            echo(
    'Сайт успешно записан!');
          }
        }
      } else {
        echo(
    $content);
      }
    } else {
        echo(
    'Неверные параметры!');
    }

    ?>  
     
  13. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Новая проблема. Запускаю скрипт через систем пхп ./а/д.Пхп все норм,скрипт запускается. И он должен создать файл в той директории по идее в которой он находится, тоесть в а , а он создает файл в директории, в который находится скрипу с систем. Получается как инклуд...
     
  14. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Какие относительные.Ты не понял.
    Есть файл а.Пхп
    систем(./дир/б.Пхп)

    б.Пхп находится в папке дир
    фопен д.Тхт ...
    Файл создается не в директории дир а втой в которой а.Пхп! Поидее если файл б.Пхп в папке дир,то он должен там и создать файл.