Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP i potoki, Watek zachacza nieco o tematyke linuksowa
P4z
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 24.05.2007
Skąd: 50°17'50.79''N 18°41'04.70''E

Ostrzeżenie: (0%)
-----


Czesc, jestem tu pierwszy (i mam nadzieje nie ostatni) raz wiec witam wszystkich goraco. Uprzedzam, ze jestem nowy w temacie PHP.

Zadanie jakie chce wykonac wyglada nastepujaco.
Na ircu na pewnym kanale stoi bot, ktory wysyla zapytanie: http://www.example.net/?nick=ksywka&msg=wiadomosc na trigger !powiedz wiadomosc. Na serwerze dziala skrypt o takiej tresc:
  1. <?php
  2.  
  3. $msg = substr(rtrim($_GET['msg']),0,128);
  4. # $msg = sprintf("%d.60",$_GET['msg']);
  5. # $msg = htmlspecialchars($_GET['msg']);
  6. $nick = $_GET['nick'];
  7. $file = "./var/edlog.txt";
  8.  
  9. $nl = "n";
  10.  
  11. if(isset($msg) AND isset($nick)) {
  12. $wiadomosc = "IRC_MSG ".$nick." ".$msg.$nl;
  13. echo "=> ".$nick." says: ".$msg." <= sent to the server";
  14. # echo $wiadomosc;
  15.  
  16. $plik = fopen($file, "a");
  17. fwrite($plik, $wiadomosc);
  18. fclose($plik);
  19.  
  20. }else {
  21. echo "Input missing.";
  22. }
  23.  
  24. ?>

plik ten jak widac przekazuje sformatowane polecenie do pliku ./var/edlog.txt.

uzywam dodatkowo pliku parser.php ktory wchodzi w sklad polecenia w skrypcie basha:
tail -n0 -f $edlog | $parser | $tron --vardir $var | tee -a $log

parser wyglada tak:
  1. #!/usr/bin/php
  2. <?php
  3. while (1) {
  4. $line = rtrim(fgets(STDIN, 1024));
  5. //print($line . "n");
  6.  
  7. if (preg_match("/^PLAYER_ENTERED/", $line)) {
  8. $keywords = preg_split("/ /", $line);
  9. print("CONSOLE_MESSAGE welcome " . mysql_escape_string($keywords[1]) . " to TYSKIE:WARZONE.n");
  10. print("CENTER_MESSAGE New player: " . mysql_escape_string($keywords[1]) . "n");
  11. usleep(500000);
  12. print("PLAYER_MESSAGE Look out for SHOTS and ZOMBIES. Respawn is ONn");
  13. }
  14.  
  15. if (preg_match("/^IRC_MSG/", $line)){
  16. $keywords = preg_split("/ /", $line);
  17. print("CONSOLE_MESSAGE 0x00ff00IRC message ==> 0xff0000" . mysql_escape_string($keywords[1]) . " says:0x00ff00 ");
  18. for ($i=2; i <= count($keywords); $i++) print(mysql_escape_string($keywords[$i]));
  19. print("n");
  20. }
  21. }
  22. ?>


i moje pytanie: jak moge wyslac do potoku dane z parsera? (tak zeby dane z $parser przekazac konsoli $tron) Obecne roziwazanie nie dziala. Prosze o kazda pomoc.
Jezeli watek juz sie przewinal prosze o wskazowke.
btw. Czy kolorowanie skladni dziala prawidlowo?

Ten post edytował P4z 24.05.2007, 18:30:59


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:49