[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. ENFIX

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

    Joined:
    6 Jun 2006
    Messages:
    175
    Likes Received:
    122
    Reputations:
    75
    берешь массив слов, массив синонимов и str_replace() тебе в помощь
     
  2. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Как запустить внешнюю программу win32.ехе или (cmd) из скрипта php, как потом убить принудительно запущенный процесс?
     
  3. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    запустить можно с помощью

    system()

    убить - с помощью запуска

    taskkill /F /IM процесс
     
  4. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Хотелось бы поподробнее

    А именно запуск exe-файла с указанием пути (где вообще должен лежать исполняемый файл чтоб к нему был доступ), получение pid процесса, убийство процесса по pid.

    ЗЫ Указание исполняемого файла по абсолютному пути работает, а относительный можно указать (относительно корневой web-директории)?

    PHP:
    <?php  
    $command
    ="start /w D:/passpro/PasswordsPro.exe /auto"
    exec("$command"); 
    ?>
    И как сделать чтоб скрипт не ждал завершения внешней комманды, направить вывод в файл?
     
    #1464 -=lebed=-, 5 Jan 2008
    Last edited: 5 Jan 2008
  5. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    ИМХО никак. Сам ищу такую возможность. Или это возможно через большую толстую вончую задницу используя консольный php. Но думаю что нет
     
  6. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    где будет лежать файл - без разницы..

    taskkill с данными параметрами, что я указал, убивает процесс по его имени, т.е.
    taskkill /F /IM имя_процесса
    т.ч. pid узнавать не надо..

    можно указать относительный путь..

    >> И как сделать чтоб скрипт не ждал завершения внешней комманды, направить вывод в файл?

    я даже х.з.. я б вообще такое не пхп писал, а на PERLe например, используя треды..
     
  7. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Во-во, вот и я про то. Нужны потоки или на худой конец форки, но они только в консольной php
     
  8. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    ээ, я не совсем понял мож быть, но чем вам такой вариант не нравится:
    PHP:
    <?php 
    $f
    =fopen ("asd","w");
    $spec = array(
       
    => array("pipe""r"),
       
    => array("pipe""w"),
       
    => array("file""eeror""a")
    );
    $proc proc_open("cmd.exe"$spec$pipes);
    for (
    $i=0$i<100$i++)
      
    fwrite($pipes[0], "echo Hello World #$i!\n");
    fclose($pipes[0]);
    while (!
    feof($pipes[1])) fputs($f,fgets($pipes[1], 1024));
    fclose($pipes[1]);
    proc_close($proc);
    ?>
     
  9. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207

    Гм интересная штука, но все равно делает не то, что надо. Надо запустить некую прогу и чтобы она сама по себе работала и выводила в файл, а скрипт при этом не зависал, а продолжал работу, например.
     
  10. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    Macro, мож я реально чето не догоняю (после вчерашнего) но вот смотри:
    PHP:
    <?php
    $spec 
    = array(
       
    => array("pipe""r"),
       
    => array("file""eeror""w"),
       
    => array("file""eeror""a")
    );
    $proc proc_open("ping"$spec,$pipes);
    fwrite($pipes[0], "localhost -t100\r\n");
    echo 
    1233;
    proc_close($proc);
    ?>
    вроде как скрипт завершился, но файл eeror постоянно увеличивается, т.е. команда ping localhost -t100 выполняется и результат пишется в файл
     
  11. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Сам, наверное, туплю, но у меня выдается в файл eeror ошибка использования команды ping...
     
  12. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    угу, вначале файла синтаксис ping, а вниз прокрути, или у тебя файл eeror не увеличивается?
     
  13. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Точно подметил, не увеличивается
     
  14. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    дабы не вводить людей в заблуждение скажу:
    да ты прав, я тупанул, я просто не завершил процесс когда пробовал а скрипт завершил принудительно и этот процесс у меня в файл и писал

    вобщем пробую дальше что нибудь мож че и получится, хотя сейчас уже совсем не уверен
     
    1 person likes this.
  15. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    мм, на пшп писать такую вещь не следует, даже на перле будет проблематично
    всё таки языки немного не для этого =\
    хотя всё возможно
     
  16. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    >> даже на перле будет проблематично

    не проблематично..
     
  17. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    win32:
    Code:
    system("start /B prog.exe") # не ждать завершения работы прог.ехе, но и не завершать скрипт
    system("start /B prog.exe > file") # тоже самое с перенаправлением вывода
    
    аналогично для *nix:
    Code:
    system("setsid ./prog") 
    system("setsid ./prog 2> file")
    
     
  18. Ded MustD!e

    Ded MustD!e Banned

    Joined:
    23 Aug 2007
    Messages:
    392
    Likes Received:
    694
    Reputations:
    405
    Есть бооольшущий txt файл состояций только из строчек (первая строка):

    Code:
    at :: (ip: *)</font></td><td valign=bottom align=right>(<a href=#  onClick=javascript:popUp("message.php?id=9")>E</a>)</td></table></td></tr></table></td></tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF"> <tr> <td height="27"> <table width="100%" border="0" cellspacing="2" cellpadding="2"><tr> <td width="30"> <div align="center"><b>2</b></div></td><td width="30" bgcolor="#CBD5DC" valign="bottom"> <div align="center"> <a href=http://site.com/profile.php?id=6><img src=Site.com/25000000.gif border=0 width=20 height=20 alt='a'></a></div></td><td valign="bottom" bgcolor="#CBD5DC"> <b>vasia:qwe123:[email protected]:222345</b></td><td width="100" valign="bottom" bgcolor="#CBD5DC"> <div align="right"><b> <a href='mailto:[email protected]'>4</a></b></div></td></tr></table></td></tr><tr> <td><table width="100%" border="0" cellspacing="2" cellpadding="2"><tr bgcolor="#CBD5DC"> <td bgcolor="#E6EBEE"> <font size="2" face="Geneva, Arial, Helvetica, san-serif">3<br><table width=100%><td valign=bottom align=left><br><div align=left><font size=1>10<div align=left><font size=1>Posted on: 8
    Естественно хотелось бы вычленить от сюда части
    в отдельный файл, при этом поле icq не всегда присутствует, то есть бывает вид
    открыть-закрыть-записать в файл я в состоянии, но вот написать реглярку, как я понимаю надо через preg_match делать, но че там со слоями и чтобы все это еще и работало, я сделать не могу. Заранее спасибо, отплюсую всех, кто поможет.
     
  19. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    PHP:
    preg_match_all('/([^>:]+):([^:]+):([^:]+):([^:<]*)/',$file,$matches);
    $names=$matches[1];
    $passes=$matches[2];
    $mails=$matches[3];
    $icqs=$matches[4];
    Что-то типа того
     
    #1479 Macro, 9 Jan 2008
    Last edited: 9 Jan 2008
    1 person likes this.
  20. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Такой ламаковский вопрос :)
    в пхпбб есть такой код
    PHP:
    if ( !defined('IN_PHPBB') ) {     die("Hacking attempt");     exit; }
    а есть и без "exit"

    PHP:
    if (!defined('IN_PHPBB')) {     die('Hacking attempt'); }
    Знач вопрос - зачем в первом варианте exit, здесь есть какой то тайный смысл (ну типа ДАЙ не всегда срабатывает и т.д.) или это они добавили ДАЙ, а ЕХИТ им было впадло удалять.
     
Thread Status:
Not open for further replies.