hilfe! stringzerlegung...

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • hilfe! stringzerlegung...

    da mir netirc zu überladen und ircg zu teuer ist, habe ich nun selbst einen php irc bot programmiert... der connect zum server klappt wunderbar, register und nickset klappen auch, und der timestamp aus den pings wird einfach mit explode rausgefiltert und mit pong zurückgesendet, sowie modt werden abgefangen und anschließend wird der gewünschte channel gejoint...

    wer sich mit raw connects ins irc auskennt (a la telnet und co) wird wissen, dass dort nicht wie in mIRC und co sachen wie "<Name> hallo" ankommen, sondern eher syntaktische sachen wie ":name!~meinident@mein.isp.de PRIVMSG #channel :hallo" ankommen...

    seit längerer zeit beschäftige ich mich damit, dieses sauber zu unterteilen... perfekt wäre ein array der in etwa so aussieht
    empfangenes['name'] = "name"
    empfangenes['ident] = "meinident"
    empfangenes['isp'] = "mein.isp.de"
    empfangenes['action'] = "PRIVMSG"
    empfangenes['channel'] = "#channel"
    empfangenes['text'] = "hallo"

    warum ich das so genau beschreibe? ich brauche hilfe, eventuell tip(p)s wie dies am besten zu lösen ist... mit explode bin ich gehscheitert, da, wenn trennzeichen im text vorkamen, eben diese dann auch abgetrennt wurden etc... blabla

    jemand ne idee?




    hier der gehirnbrand den ich bis jetzt zu stande gebracht habe...

    PHP-Code:
    <?php
    $socket
    =fsockopen("irc.server.de",6667);
    while(
    $string=fgets($socket))
    {
        if (
    stristr($string,"ident"))
        {
            break;
        }
    }
    fputs($socket,"user bot 0 0 bot\n");
    fputs($socket,"nick botname\n");
    $pingreply=fgets($socket);
    $pingstamp=explode(" :",$pingreply);
    fputs($socket,"PONG :".$pingstamp[1]."\n");
    while(
    true)
    {
        if (
    stristr(fgets($socket),"End of /MOTD command."))
        {
            break;
        }
    }
    fputs($socket,"join #channel\n");

    while(
    $string=fgets($socket))
    {
        
    //
        //
        // hier bräuchte ich die string zerlegung :)
        // von $string ;)
        //
        //

        // ...erstmal temporäre unsaubere abfrage nach einer privmsg
        // nur damit der bot wenigstens anständig disconnected falls ich will
        
    if (stristr($string,"privmsg"))
        {
            
    // wenn jemand quit sagt...
            
    if (stristr($string,"quit"))
            {
                
    fputs($socket,"quit\n");
            }
        }
        
    // pings mit pong beantworten...
        
    if (stristr($string,"ping"))
        {
            
    $pongsrv=explode(" :",$string);
            
    fputs($socket,"PONG :".$pongsrv[1]."\n");
        }
    }
    ?>
    jaja, nicht sehr toll und sicher, aber für den anfang reichts erstmal imo... geht ja nur ums logging, soll kein talkbot werden...

  • #2
    hmm,

    sagen dir reguläre ausdrücke etwas?
    Code:
    /:(.+)!~(.+)@([^ ]+) (.+) #(.+) :(.+)/is
    schau dir mal die unterausdrücke an ... http://pcre.nophia.de/evaluate/index...9acb7f9ede6f7f

    must halt je nach dem noch umbasteln ...

    so?
    OffTopic:
    btw: formulier doch das nächste mal deinen einleitenden text etwas kürzer, oder formatiert die eigentliche fragestellung fett ... danke.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      btw: formulier doch das nächste mal deinen einleitenden text etwas kürzer, oder formatiert die eigentliche fragestellung fett ... danke.
      sry, konnte nicht wissen das man hier mit einem dutzend zeilen die literarischen grenzen eines users übertrifft, bin noch neu hier...

      Kommentar


      • #4
        sry, konnte nicht wissen das man hier mit einem dutzend zeilen die literarischen grenzen eines users übertrifft, bin noch neu hier...
        OffTopic:
        stfu!
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          warum php-resource.de wenn's auch höflich geht?

          http://www.selfphp.com/forum/showthr...&threadid=8676

          tschüss...

          Kommentar


          • #6
            Original geschrieben von EyeDacor
            warum php-resource.de wenn's auch höflich geht?
            Fass dir an die eigene Nase.........

            Das glaubst du doch wohl selbst nicht oder?
            Man hat dir geholfen dir sogar ein Regulär Expression Tool an die Hand gegeben und dir nur einen berechtigten Tipp gegeben aber wie reagierst du?

            Original geschrieben von EyeDacor
            sry, konnte nicht wissen das man hier mit einem dutzend zeilen die literarischen grenzen eines users übertrifft, bin noch neu hier...
            Du bist zwar neu aber es gibt absolut keinen Grund unhöflich zu werden!

            -> wenn interessiert deine Lebensgeschichte? Man will dein Problem wissen und zwar nicht ausgeschmückt mit lots of blabla...Kernaussauge

            OffTopic:

            Anmerkung: Auf einer offenen Strasse hätte ich dir bei so einer Aussage unweigerlich eine reingehauen. Bei der Frage warum gleich nochmal.....

            [color=blue]MfG Payne_of_Death[/color]

            [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
            [color=red]Merke:[/color]
            [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

            Murphy`s Importanst LAWS
            Jede Lösung bringt nur neue Probleme
            Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
            In jedem kleinen Problem steckt ein großes, das gern raus moechte.

            Kommentar


            • #7
              *hahaha* ich lach mich kaputt

              Kommentar


              • #8
                Original geschrieben von EyeDacor
                warum php-resource.de wenn's auch höflich geht?

                http://www.selfphp.com/forum/blah...
                ja, und da kann der kleine sogar einen lustigen avatar unter seinem usernamen einbinden - hurra, so ein forum kommt für solche kiddies doch gleich viel besser ...!


                btw: viel höflicher bist du da ja auch nicht immer, oder?
                http://www.selfphp.com/forum/showthr...0133#post40133
                http://www.selfphp.com/forum/showthr...3419#post43419
                http://www.selfphp.com/forum/showthr...0365#post40365
                http://www.selfphp.com/forum/showthr...0177#post40177

                also bitte mal nicht so weit aus dem fenster lehnen, kleiner stinker ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Original geschrieben von EyeDacor
                  *hahaha* ich lach mich kaputt
                  wenn du Höfflichkeit erwartest, dann sollst du zuerst mal höfflich werden.

                  1. Verwarnung an dich. Ich werde dich im Auge behalten. Doch ich hoffe, dass du nicht wieder mit Probleme kommst. TIA.

                  Kommentar


                  • #10
                    Original geschrieben von EyeDacor
                    *hahaha* ich lach mich kaputt
                    Was kann man heutzutage von Kiddies erwarten?
                    -> nichts

                    Zu meiner Zeit hätte mir Paps eine mitgegeben

                    nunja ich hoffe irgendwann wirst auch DU erwachsen!
                    [color=blue]MfG Payne_of_Death[/color]

                    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                    [color=red]Merke:[/color]
                    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                    Murphy`s Importanst LAWS
                    Jede Lösung bringt nur neue Probleme
                    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                    Kommentar


                    • #11
                      ja, mit 28 jahren wirds ja auch mal zeit...

                      kannst ja nochmal alles in ruhe lesen... dann fällt glaube ich auf wer und wo es ausfällig wurde... aber zweimal lesen tut das hier ja eh keiner (die 10 zeilen intro waren ja schon zuviel für einige...)

                      ...

                      Kommentar


                      • #12
                        Original geschrieben von EyeDacor
                        kannst ja nochmal alles in ruhe lesen... dann fällt glaube ich auf wer und wo es ausfällig wurde...
                        ja - und zwar ab deinem zweiten posting.
                        derHund hatte dich doch nur darauf hingewiesen, dass du das nächste mal bitte etwas direkter zur sache kommen könntest, statt romane zu schwafeln - und darauf hin gräbst du die polemik-keule aus.
                        (die 10 zeilen intro waren ja schon zuviel für einige...)
                        hör jetzt bitte endlich auf, hier rumzustänkern!

                        *2. verwarnung*

                        *close*, problem scheint ja eh erledigt.
                        Zuletzt geändert von wahsaga; 22.09.2004, 12:49.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar

                        Lädt...
                        X