Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] preg_split und leerzeichen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] preg_split und leerzeichen

    Hallo,

    ich möchte eine Zeile mit
    PHP-Code:
    preg_split('/\s/'$content, -1PREG_SPLIT_NO_EMPTY); 
    als ein Array abspreichern aber es gibt bestimmte html entities die ausgeschlossen werden müssen aber diese UND Verknüpfung kriege ich nicht hin.
    Z.B. zwischen zwei &quote; darf preg_split die Leerzeichen nicht auswerten.

    Kann mir jemand bitte helfen?


  • #2
    Vergiss es. Such einen anderen Weg! Das schreit schon förmlich „Fehler, Fehler“!
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von blade81 Beitrag anzeigen
      Hallo,

      ich möchte eine Zeile mit
      PHP-Code:
      preg_split('/\s/'$content, -1PREG_SPLIT_NO_EMPTY); 
      als ein Array abspreichern aber es gibt bestimmte html entities die ausgeschlossen werden müssen aber diese UND Verknüpfung kriege ich nicht hin.
      Z.B. zwischen zwei &quote; darf preg_split die Leerzeichen nicht auswerten. ...
      PHP-Code:
      preg_split('/(?<!&quote;)\s(?!&quote;)/'$content, -1PREG_SPLIT_NO_EMPTY); 
      Das lässt sich (vor allem auf der linken Seite) nicht beliebig kompliziert ausbauen, daher frage ich mich, was du eigentlich konkret vor hast.
      Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

      Kommentar


      • #4
        Zitat von fireweasel Beitrag anzeigen
        PHP-Code:
        preg_split('/(?<!&quote;)\s(?!&quote;)/'$content, -1PREG_SPLIT_NO_EMPTY); 
        Das lässt sich (vor allem auf der linken Seite) nicht beliebig kompliziert ausbauen, daher frage ich mich, was du eigentlich konkret vor hast.
        Ich habe einen String wie unten dargestellt formatiert ist.
        Beispiel:

        PHP-Code:
        asdas asdasd asdasad "asda asd as" asdasd 
        Auf die Formatierung habe ich keinen Einfluss. Ich möchte nur alle Wörter in einem Array haben. Ich habe so ein tick ich suche immer den schwierigeren weg. Daher macht mir preg_split Kopfschmerzen.

        Dein Beitrag hat mich weitergebracht und ich habe über look around assertions was gelernt aber ich kriege den Ausdruck nicht so hin, dass alle Leerzeichen zwischen zwei " ignoriert werden.

        Kommentar


        • #5
          Benutz einfach preg_match. Suche nach Wordcharacters oder mit " geklammerte Zeichen
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Ich habe es nun so gelösst.

            PHP-Code:
            $startOff  strpos($content';')+1;
            $endOff    strrpos($content'&');
            $len         $endOff-$startOff;
            $name        substr($content$startOff$len);
                
            $content preg_replace('/&quot;.*&quot;\s/u'''$content);
            $content preg_split('/\s/u'$content, -1PREG_SPLIT_NO_EMPTY);    
            array_push($content$name); 
            Trotzdem würde es mich interessieren ob es allein mit preg_split möglich wäre

            Kommentar


            • #7
              LOL. Super. Nur sagen & und ; überhaupt nichts darüber aus, ob da ein quot dazwischen steht.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                LOL wieso denn nicht? Was verstehst du denn an dem code nicht? Es funktioniert wunderbar.

                Kommentar


                • #9
                  Zitat von blade81 Beitrag anzeigen
                  LOL wieso denn nicht? Was verstehst du denn an dem code nicht?
                  Was gibt es da dumm zu LOL-en?
                  Was verstehst du nicht daran, dass zwischen & und ; ganz andere Zeichen stehen können, als die Buchstabenfolge quot?

                  Dein Script getestet mit $content = 'test &quot;eins zwei&quot; drei':
                  Code:
                  Array
                  (
                      [0] => test
                      [1] => drei
                      [2] => eins zwei
                  )
                  Dein Script getestet mit $content = 'test &nbsp;eins zwei&copy; drei':
                  Code:
                  Array
                  (
                      [0] => test
                      [1] =>  eins
                      [2] => zwei©
                      [3] => drei
                      [4] => eins zwei
                  )

                  Kommentar


                  • #10
                    Zitat von blade81 Beitrag anzeigen
                    Ich habe einen String wie unten dargestellt formatiert ist.
                    Beispiel:

                    PHP-Code:
                    asdas asdasd asdasad &quot;asda asd as&quotasdasd 
                    Auf die Formatierung habe ich keinen Einfluss. Ich möchte nur alle Wörter in einem Array haben.
                    PHP-Code:
                    preg_match_all('/(?:&quot;.*?&quot;|\S+)/'$src$hits);
                    // einfach mal in $hits reinschauen 
                    Ich habe so ein tick ich suche immer den schwierigeren weg. Daher macht mir preg_split Kopfschmerzen.
                    Dabei kann man mit preg_split() so lustige Sachen machen ...

                    Dein Beitrag hat mich weitergebracht und ich habe über look around assertions was gelernt ...
                    Die ich vergaß, zu verlinken (Faulheit) ...

                    ... aber ich kriege den Ausdruck nicht so hin, dass alle Leerzeichen zwischen zwei " ignoriert werden.
                    Das geht ganz sicher auch irgendwie, mal kucken ...
                    Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

                    Kommentar


                    • #11
                      Zitat von ChrisB Beitrag anzeigen
                      Was gibt es da dumm zu LOL-en?
                      Was verstehst du nicht daran, dass zwischen & und ; ganz andere Zeichen stehen können, als die Buchstabenfolge quot?

                      Dein Script getestet mit $content = 'test &quot;eins zwei&quot; drei':
                      Code:
                      Array
                      (
                          [0] => test
                          [1] => drei
                          [2] => eins zwei
                      )
                      Dein Script getestet mit $content = 'test &nbsp;eins zwei&copy; drei':
                      Code:
                      Array
                      (
                          [0] => test
                          [1] =>  eins
                          [2] => zwei©
                          [3] => drei
                          [4] => eins zwei
                      )



                      Ich habe oben deutlich geschrieben, es kann dort nur &quot; vorkommen.

                      Ich habe einen String wie unten dargestellt formatiert ist.
                      Beispiel:

                      PHP-Code:
                      asdas asdasd asdasad "asda asd as" asdasd
                      Auf die Formatierung habe ich keinen Einfluss.

                      Kommentar


                      • #12
                        See #2
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Zitat von blade81 Beitrag anzeigen
                          Ich habe oben deutlich geschrieben, es kann dort nur &quot; vorkommen.
                          Nein, hast du nicht.

                          Du hast einen Beispielstring genannt, in dem nur das vorkam.

                          Kommentar


                          • #14
                            Der Inhalt (die asdasd') war ein Beispiel und nicht die Formatierung. Danke jedenfalls.

                            Kommentar


                            • #15
                              Zitat von fireweasel Beitrag anzeigen
                              PHP-Code:
                              preg_match_all('/(?:&quot;.*?&quot;|\S+)/'$src$hits);
                              // einfach mal in $hits reinschauen 

                              Dabei kann man mit preg_split() so lustige Sachen machen ...


                              Die ich vergaß, zu verlinken (Faulheit) ...



                              Das geht ganz sicher auch irgendwie, mal kucken ...
                              Danke

                              Kommentar

                              Lädt...
                              X