Ankündigung

Einklappen
Keine Ankündigung bisher.

endlosschleife?

Einklappen

Neue Werbung 2019

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

  • endlosschleife?

    ich habe mir mal die folgende funktion geschrieben, die whitespace aus einem string entfernen soll (das heißt, nicht ganz: es soll zeilenumbrüche etc. in blaks verwandeln...)
    PHP-Code:
    function strip_whitespace ($str)
    {
        
    $str trim($str);
        
    $bad = array("\n","\r","\t","\v","\0",'  ');
        
    $i 0;
        if (
    $str != '')
        {
            while (
    $i count($bad))
            {
                while (
    stristr($str,$bad[$i]) !== false)
                {
                    
    str_replace($bad,' ',$str);
                }
                
    $i++;
            }
        }
        return 
    $str;

    wenn jetzt aber $str != '' ist, dann bleibt mein skript hängen, und ich erkenne einfach nicht, wo der fehler ist...
    http://www.silvercoding.de
    ------------
    ElePHPant Edit

  • #2
    PHP-Code:
    function strip_whitespace ($str)
        {
        return 
    preg_replace('#\s#'''$str);
        } 

    Kommentar


    • #3
      thx, but ich brauche zwischen den einzelnen wörtern noch leerzeichen...
      weil, wenn aus:
      ich kann zwar php aber
      ich find den fehler nicht


      ichkannzwarphpaberichfinddenfehlernicht

      wird, ist das auch ein bisschen blöd, oder?
      http://www.silvercoding.de
      ------------
      ElePHPant Edit

      Kommentar


      • #4
        PHP-Code:
        function strip_whitespaces($string)
        {
          return 
        preg_replace('#\s+#'' '$string);

        Das wandelt alle Whitespaces in Spaces um.
        Wenn mehrere hintereinander stehen, wird daraus ebenfalls _ein_ Space.

        Kommentar


        • #5
          Zitat von DutziMan
          PHP-Code:
          function strip_whitespaces($string)
          {
            return 
          preg_replace('#\s+#'' '$string);

          Das wandelt alle Whitespaces in Spaces um.
          Wenn mehrere hintereinander stehen, wird daraus ebenfalls _ein_ Space.
          kann auch sein, dass ich mich irre, aber ist ein + nicht das äquivalent zu {1,}? das wäre dann ja mindestens 1 whitespacezeichen...
          http://www.silvercoding.de
          ------------
          ElePHPant Edit

          Kommentar


          • #6
            + = >= 1 Zeichen
            * = 0 oder >= 2 Zeichen
            ? = Ein oder kein Zeichen

            Kommentar


            • #7
              Zitat von GiggyGsk
              * = 0 oder >= 2 Zeichen
              Häh?
              * heißt >= 0 Zeichen, oder?


              Zitat von konsti
              kann auch sein, dass ich mich irre, aber ist ein + nicht das äquivalent zu {1,} wäre dann ja mindestens 1 whitespacezeichen...
              Gibt's damit ein Problem?

              Kommentar


              • #8
                jo, hasst recht hatte da gerade an was anderes gedacht .

                Kommentar


                • #9
                  jo ich blick grad garnicht mehr durch... vierlleicht schau ichs mir morgen einfach nochmal an...
                  http://www.silvercoding.de
                  ------------
                  ElePHPant Edit

                  Kommentar


                  • #10
                    Zitat von tapferesschneiderlein
                    Zitat von konsti
                    kann auch sein, dass ich mich irre, aber ist ein + nicht das äquivalent zu {1,} wäre dann ja mindestens 1 whitespacezeichen...
                    Gibt's damit ein Problem?
                    ja aber dann wird doch ein ' ' durch ein ' ' ersetzt!?
                    macht das dann keine probleme???
                    http://www.silvercoding.de
                    ------------
                    ElePHPant Edit

                    Kommentar


                    • #11
                      Durch das "+" werden alle Whitespaces, die in einer Kette von einer Länge von größer
                      gleich eins zusammenhängen, durch ein einzelnes Space ausgetauscht.

                      Kommentar


                      • #12
                        Zitat von DutziMan
                        Durch das "+" werden alle Whitespaces, die in einer Kette von einer Länge von größer
                        gleich eins zusammenhängen, durch ein einzelnes Space ausgetauscht.
                        ok
                        http://www.silvercoding.de
                        ------------
                        ElePHPant Edit

                        Kommentar


                        • #13
                          Das Ergebnis noch durch trim() jegen, dann ist es komplett.

                          Zu deinem Skript oben (abgesehen davon, dass es ziemlich verrückt (spaßig gemeint) ist *g) hast du einfach nur vergessen, das Ergebnis von str_replace() der Variable $str auch zuzuweisen. str_replace() verändert keine Variable, die ihr übergeben wird, sondern gibt die veränderte Zeichenkette zurück.

                          Basti

                          Kommentar


                          • #14
                            Durch das "+" ist übrigens trim() unnötig

                            Kommentar


                            • #15
                              Du hast doch dann womöglich ein Leerzeichen am Anfang und/oder am Ende und das wollte der OP doch nicht.

                              Basti

                              Kommentar

                              Lädt...
                              X