String trennen

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

  • String trennen

    Moinsen,

    hab die suche benutz aber nicht wirklich was passendes gefunden. In ein Textfeld werden mehrere 10 stellige Artikelnummern eingescannt mittels Barcode. Wenn das formular abgeschickt wird will ich den string so trennen das ich wieder die einzelnen Artikelnummern in einem Array hab um diese weiter zu bearbeiten. Hab mir schonmal explode angeschaut aber da braucht man ja ein Trennzeichen so wie ich das verstanden hab oder?

    Hoffe es kappiert jemand was ich will aber kanns nich besser erklären

    MfG
    Novaspace

  • #2
    preg_match()
    preg_match_all()
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax
      preg_match()
      preg_match_all()
      hmm ok... hab mir die manual angeschaut aber blicke nicht wirklich ganz durch... Denke mal das ich für meinen Fall preg_match_all() brauche. Nur wie geb ich das jetzt mit den 10 stellen an? Der string iss bei mir $scans und das array sollte $article_no sein. Könntest du mir bitte eine kleine Hilfestellung geben?

      MfG
      Novaspace

      Kommentar


      • #4
        stellenanzahl gibst du mittels quantifier {min, max} an resp. {exakt}
        ziffern kannst du als \d darstellen. enthält dein code hex oder andere buchstaben, oder beliebige zeichen nimmst du eben das entsprechende metazeichen.

        \d{10} => 10 ziffern

        für deine zwecke sollten die string-funktionen auch reichen ... substr
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          ok bekomme jetzt aber folgenden Fehler angezeigt
          Warning: Delimiter must not be alphanumeric or backslash in /home/fips/public_html/lager/index.php on line 985
          Testweise sieht mein Code so aus
          PHP-Code:
              preg_match_all("\\d{10}"$scans$article_no);     
          echo 
          $article_no[0];     
          echo 
          $article_no[1]; 
          was iss da noch falsch? Zeile 985 iss die erste...

          thx
          Novaspace

          Kommentar


          • #6
            Probier das mal so:
            PHP-Code:
            preg_match_all("/\d{10}/"$scans$article_no); 
            Gruss

            tobi
            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


            • #7
              Original geschrieben von derHund
              für deine zwecke sollten die string-funktionen auch reichen ... substr [/B]
              Bei substr bekomm ich doch nur eine teil des strings oder versteh ich da was falsch? brauche ja alle teile halt nur auch geteilt

              Original geschrieben von jahlives
              Probier das mal so:
              PHP-Code:
              preg_match_all("/\d{10}/"$scans$article_no); 
              Gruss

              tobi
              Danke das Funktioniert soweit. Nur wie bekomme ich jetzt meine Artikelnummern wieder? Hab schon paar sachen versucht um $article_no wieder auszulesen aber anscheind bin ich zu doof dafür. Wenn ich das richtig verstehe ist das doch ein zweidimensionales Array oder?

              MfG
              Novaspace

              Kommentar


              • #8
                Bei substr bekomm ich doch nur eine teil des strings oder versteh ich da was falsch? brauche ja alle teile halt nur auch geteilt
                ja, besonders .. ach, vergiß es kennst du die konstrukte, die es ermöglichen, beliebige anweisungen zu wiederholen? moment, ich telefoniere gerade mit einem professor. ich frage ihn gleich, wie das heißt ...

                Danke das Funktioniert soweit. Nur wie bekomme ich jetzt meine Artikelnummern wieder? Hab schon paar sachen versucht um $article_no wieder auszulesen aber anscheind bin ich zu doof dafür.
                hast du mal ins tutorial geschaut?
                Wenn ich das richtig verstehe ist das doch ein zweidimensionales Array oder?
                und warum kuckst du nicht nach, ob du ein ergebnis erhälts?

                einfach mal print_r auf das array.
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Original geschrieben von derHund

                  und warum kuckst du nicht nach, ob du ein ergebnis erhälts?

                  einfach mal print_r auf das array. [/B]
                  dann zeigt er nur das an:
                  Array ( [0] => Array ( ) )
                  Ihr haltet mich jetzt bestimmt für doof aber ich blick das ganze nichmehr...

                  Kommentar


                  • #10
                    wie sieht der string aus, auf den du das anwendest?
                    PHP-Code:
                      $string '5465465132198987654351081651635435435451984654654198135498495165';
                      
                    preg_match('#\d{10}#'$string$res);
                      echo 
                    '<pre>'.print_r($resTRUE).'</pre>'
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      PHP-Code:
                      function m_scan(){ 
                          
                      OpenTable();
                           echo 
                      '<div align="center"><form name="form1" method="post" action="?op=m_scan_exec">
                      <textarea name="scans"><input type="submit" name="Submit" value="Anzeigen"></form></div>'
                      ;
                                  
                      CloseTable(); 
                      }  
                      function 
                      m_scan_exec(){
                           global 
                      $Connection,$scans;     
                                   
                      OpenTable();     
                                   
                      strval($scans);     
                                   
                      preg_match_all('/d{10}/',$scans,$article_no);
                           
                      print_r($article_no);
                           
                      CloseTable(); 

                      in der ersten funktion werden belibig viele artikelnummer 10 stellige nacheinander eingescant. danach wird die variable $scans an die zweite funktion weitergegeben und da dann in ein string umgewandelt und sollte dann wieder in die eigentlichen artikelnummern getrennt werden. die will ich dann in der funktion weiterverarbeiten z.b. das zu jeder artikelnummer weitere infos aus der datenbank angezeigt werden... oder hab ich da jetzt einen grundsätzlichen denkfehler drin?

                      Kommentar

                      Lädt...
                      X