Suchmuster

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchmuster

    Ich suchen ein pasendes Suchmuster um per preg_match vollegndes aus dem Quelltext zu finden!

    PHP-Code:
    Name:     BlecHRaucher 
    DAs Problem ist warscheinlich das doppelte Lehrzeichen


    PHP-Code:
    (Name.+); führt zu keinem ergebniss :( 

  • #2
    http://php.net/pcre

    Kommentar


    • #3
      DAnke für den link!

      (
      PHP-Code:
      preg_match_all("/name.*/",$text,$user); 
      damit sollte ich laut dem link name "."(belibigeszeichen) " * "(Anzahlen von 0 oder mehr) finden!


      Jedoch erhalte ich als Ausgane nur:

      Name

      ansatt von

      PHP-Code:
      Name:     BlecHRaucher 
      woran kann das leigen ? am doppelten lehrzeichen zwischen name: und Blechraucher?

      Kommentar


      • #4
        name !== Name und sonst Modifier i verwenden
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          welche bedeutung haben runde klammern bei regulären ausdrücken nach pcre?

          Kommentar


          • #6
            Original geschrieben von jahlives
            name !== Name und sonst Modifier i verwenden

            HAb ich jetzt leider nich ganz verstanden =(

            modifider i hab ich gesetzt

            PHP-Code:
            preg_match_all("/name.*/i",$text,$user); 
            So erhalte ich aber die Ausgabe "Name" und nicht:


            Name: BlecHRaucher

            Kommentar


            • #7
              Original geschrieben von gamer98765
              So erhalte ich aber die Ausgabe "Name" und nicht:


              Name: BlecHRaucher
              was steht denn in $text? kann deine ausgabe nicht nachvollziehen.

              Kommentar


              • #8
                Original geschrieben von 3DMax
                was steht denn in $text? kann deine ausgabe nicht nachvollziehen.

                PHP-Code:
                3c81 Jamaica Wars Details von BlecHRaucher NameBlecHRaucher Letzte Aktion15.06.2007 19:00:14 Punkte235378 

                Rang
                10 Kiff-Inc<<< Partyalarm >>> BeschreibungIch bins Nachricht senden Geld überweisen Bewertungen im Auktionshaus 
                Plantagen Huge 20 
                58 as 21 54 tight 21 55 [Fenster schließen
                Zuletzt geändert von gamer98765; 15.06.2007, 19:31.

                Kommentar


                • #9
                  so, erstmal beseitigst du die überbreite

                  entweder umbrechen und dazuschreiben, dass du es wegen des forums gemacht hast und es eine zeile ist oder du postest es als anhang.

                  Kommentar


                  • #10
                    HAbs editiert! die zeilenumbrüche also ignorieren! kommen im code auch nicht vor!

                    Kommentar


                    • #11
                      ok, deine ausgabe kann ich allerdings nach wie vor nicht nachvollziehen - wie machst du die ausgabe bzw. greifst du auf das $user-array zu?.

                      ich würd's allerdings so machen: preg_match('/Name:\s(.*)\s/U', $text, $user);

                      preg_match_all ist eigentlich EDIT: "nicht" notwendig, wenn eh nur einmal "Name:" vorkommt, es sei denn, das war nur ein ausschnitt.
                      EDIT: und durch die klammerung kannst du direkt auf den namen zugreifen, mehr interessiert dich doch nicht.

                      und wenn hinter name immer " Letzte Aktion:" folgt, kannst du auch daraufhin das suchmuster anpassen.

                      und wenn die leerzeichen, wie du eingangs geschrieben hast, variabel sind, kannst du auch \s+ benutzen.
                      Zuletzt geändert von 3DMax; 15.06.2007, 19:46.

                      Kommentar


                      • #12
                        Und du bist sicher, dass keine Zeilenumbrüche drin sind?

                        Normalerweise müsste dein regulärer Ausdruck bis ans Ende von $text matchen (weil der von Natur aus erstmal gierig ist, und .* auf den gesamten Rest passt) oder eben bis zum Zeilenumbruch...

                        greetz, high
                        Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
                        When everything else fails, manipulate the data...
                        Beschriftungen / Großformatdruck / Werbemittel

                        Kommentar


                        • #13
                          Original geschrieben von 3DMax
                          preg_match('/Name:\s(.*)\s/U', $text, $user);
                          ISt richtig!!!

                          echo $user[0];

                          gibt mirvollgendes aus:

                          Name: BlecHRaucher

                          ISt ja aus so perfekt!


                          Nur möchte ich $user in eine Csv exportieren!

                          PHP-Code:
                              $filename $form_file.'.csv';
                              
                          $nl chr(13) . chr(10);
                              if (!
                          $handle fopen($filename"ab")) {
                                      print 
                          "Kann die Datei $filename nicht öffnen";
                                      exit;
                                 }
                              for(
                          $i=0;$i<count($regs[0]);$i++){
                                  
                          $x strtok ($regs[0][$i],":");
                                  
                          $y strtok (":");
                                  
                          $d strtok ($test[0][$i],":");
                                  
                          $Yd strtok ($user[0],":");
                                  if (!
                          fwrite($handle$x.";".$y.";".$d.";".$Yd.$nl)) {
                                      print 
                          "Kann in die Datei $filename nicht schreiben";
                                      exit;
                                  }
                                  
                          $anzahl =$i+1;
                              }
                                 
                          fclose($handle); 
                          Aber in der Csv eRHALTE ICH NUR:

                          Name

                          anstatt

                          Name: BlecHRaucher




                          Ich packe mal den kommpleten Code in der anhang!
                          Angehängte Dateien

                          Kommentar


                          • #14
                            oh ja, und mir auch! kann mir jemand meine arbeit machen? das wäre soooo nett!

                            Kommentar


                            • #15
                              Original geschrieben von penizillin
                              oh ja, und mir auch! kann mir jemand meine arbeit machen? das wäre soooo nett!
                              DAnke =(

                              Der Code is von mir selbst nur $user lässt sich nicht in die csv exportieren! bei $regs und $test klappts ohne Probleme!

                              Das stellt mich vor ein mit meinem Wissen nicht lösbares Problem!

                              ICh endschuldige mich dafür das ich hier eine FRage stelle die vieleicht für manche von euch eine scheinbar simpele Lösung hat!

                              Kommentar

                              Lädt...
                              X