Frage zu ereg_replace()

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

  • Frage zu ereg_replace()

    Hallo,

    kann ich mir eigentlich anzeigen lassen, wie viele Stellen von einem ereg_replace() erfasst worden sind?

    Möchte z.B. in der Ausgabe alle Zeilenumbrüche im HTML Sourecode entfernen um Bytes zu sparen. Jetzt würde mich aber mal interessieren, wie viele Zeilenumbrüche entfernt werden oder z.B. wie viele doppelte Leerzeichen im Code.
    Kann man die betroffenen Stellen von ereg_replace() mitzählen?

    Und dann noch eine Frage:
    Da es sich beim Ersetzten ja nur um \n \r und " " handelt, wäre da ein str_replace() sinnvoller, wie sieht das Performance-Technisch im Vergleich zu ereg_replace() aus?

    Danke & Grüße, Andi

  • #2
    soweit ich meine ist str_replace schneller, da keine evtl. regulären ausdrücke geprüft werden müssen.
    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
      So hab ichs mir auch gedenkt.
      Irgend eine Idee, wie man die betroffenen Stellen zählen kann?

      Grüße, Andi

      Kommentar


      • #4
        Du kannst vorher mit preg_match_all zählen. Aber dann ist die Performance, die du mit str_replace rausholst, wieder hinfällig.
        {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

        Kommentar


        • #5
          Ahh, stimmt, damit lässt sichs ja zählen, danke!

          Ich will nur mal interessehalber wissen, wie viel er so bei den einzelnen Seiten einspart, die Anzeige fliegt natürlich bei der Live-Schaltung wieder raus!

          Grüße, Andi

          Kommentar


          • #6
            Re: Frage zu ereg_replace()

            Möchte z.B. in der Ausgabe alle Zeilenumbrüche im HTML Sourecode entfernen um Bytes zu sparen.
            wenn du speicherplatz sparen willst, dann benutze für diese ersetzung doch gleich einen ordentlichen texteditor, der macht das erstens im handumdrehen, und zählt auch noch mit, wie viele ersetzungen stattgefunden haben.

            wenn du bandbreite sparen willst, dann lass deinen server die seiten doch gleich gzip-komprimiert ausliefern, damit sparst du mehr als mit eine paar entfernetn zeilenumbrüchen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Re: Re: Frage zu ereg_replace()

              Original geschrieben von wahsaga
              wenn du speicherplatz sparen willst, dann benutze für diese ersetzung doch gleich einen ordentlichen texteditor, der macht das erstens im handumdrehen, und zählt auch noch mit, wie viele ersetzungen stattgefunden haben.

              wenn du bandbreite sparen willst, dann lass deinen server die seiten doch gleich gzip-komprimiert ausliefern, damit sparst du mehr als mit eine paar entfernetn zeilenumbrüchen.
              Schon klar, habe ich ja auch schon mit den statischen Seiten getan, das Meiste kommt jedoch aus einer DB. Wenn ich dann den Inhalt mit nl2br() ausgebe, macht er mir im Sourcecode aber auch immer noch einen Umbruch.

              So läufts jetzt eigentlich ganz optimal. Wenn die Seiten komprimiert gesendet werden, muß der Browser die beim Anzeigen erst wieder dekomprimieren. Bei nicht so ganz aktuellen Rechnern ist die Darstellung dann auch verzögert, also hebt sich die gewonnen Übertragungsgeschwindigkeit auch weider auf.

              Thanks & Greets
              Andi

              Kommentar


              • #8
                ich habe versucht mit preg_match_all zu zählen, aber ich bekomme immer nur 1 als Wert raus.

                PHP-Code:
                preg_match_all("<IMG alt=.* hspace=.* src=.* align=.* border=.*>"$arrayalsstringB$trefferBPREG_SET_ORDER);
                echo 
                count($trefferB[0]); 
                So sieht dann z.B. mein Text aus:
                Code:
                <P>toller Text blabla <IMG alt=\"\" hspace=0 src=\"C:\\Inetpub\\wwwroot\\cut.gif\" align=baseline border=0>
                toller Text blabla
                 <IMG alt=\"\" hspace=0 src=\"C:\\Inetpub\\wwwroot\\copy.gif\" align=baseline border=0>
                toller Text blabla 
                <IMG alt=\"\" hspace=0 src=\"C:\\Inetpub\\wwwroot\\center.gif\" align=baseline border=0></P>
                Also wie bekomme ich korrekt die Anzahl der IMG-Tags?

                Kommentar


                • #9
                  keiner der mir helfen kann?

                  Im übrigen, wird acuh von ereg_replace nur ein vorkommen ersetzt und zwar das letzte.
                  Zuletzt geändert von bajana; 07.02.2006, 11:08.

                  Kommentar


                  • #10
                    Leider habe ich die Lösung immer noch nicht gefunden...

                    Kommentar


                    • #11
                      Du könntest mal zählen wieviele Zeilen dein Array hat....

                      Und höflicher sein, denn sonst will dir keiner mehr eine Antwort geben.

                      Kommentar


                      • #12
                        Zähle ich die Zeilen nicht mit count?

                        PHP-Code:
                        count($trefferB[0]); 
                        Was genau hast Du jetzt unhöflich gefunden? Wollte bestimmt nicht unhöflich sein, wenns so rübergekommen ist wars keine Absicht.

                        Kommentar


                        • #13
                          bei preg_replace erhälst Du als Ergebnis ein Array zurück.

                          array [0] ist die gesamte Übereinstimmung

                          array [1] enthält die Werte der ersten Rückreferenz

                          array [1] [x] hier befinden sich die einzelnen Werte

                          Kommentar


                          • #14
                            Ja, aber wie zähle ich damit? Bei meinem oben genannten beispiel liefert
                            PHP-Code:
                            echo $trefferB[0][0]; 
                            <IMG alt=\"\" hspace=0 src=\"C:\\Inetpub\\wwwroot\\cut.gif\" align=baseline border=0><IMG alt=\"\" hspace=0 src=\"C:\\Inetpub\\wwwroot\\copy.gif\" align=baseline border=0><IMG alt=\"\" hspace=0 src=\"C:\\Inetpub\\wwwroot\\center.gif\" align=baseline border=0>

                            zurück, also alle übereinstimmungen stehen im Array [0][0]

                            logisch, dass dann
                            PHP-Code:
                            count($trefferB[0]); 
                            1 zurück liefert.
                            Ich verzweifle daran noch...

                            Kommentar


                            • #15
                              Nicht verzweifeln !!!! - sondern folgendes entsprechend umbauen:

                              PHP-Code:
                              <?php

                              $text 
                              "hallo blalalalalal lkdjfsldkjf skdflskjd";

                              preg_match_all ('/( )/'$text$ergebnis);

                              $anz count ($ergebnis[0]);

                              echo 
                              "Anzahl der Leerzeichen ist ".$anz;
                               
                              ?>

                              Kommentar

                              Lädt...
                              X