Funktionen verschachteln: ereg_replace und strtolower

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

  • Funktionen verschachteln: ereg_replace und strtolower

    Bin PHP-Anfängerin und suche nach der einfachsten Möglichkeit, die kompletten Textinhalte einer HTML-Seite in Kleinbuchstaben umzuwandeln. Hintergrund ist, dass ich für einen "Kleinschreibungs-Fetischisten" einen Shop einrichte und mir ersparen möchte, alle Seiten des Skripts manuell zu ändern, sondern einfach über eine Funktion in einer Header-Datei alle Textinhalte (also alles was im body zwischen Tags steht) z.B. mit strtolower() verkleinern will.

    Vielen Dank für alle Hinweise.
    Zuletzt geändert von Susi21; 11.03.2004, 14:23.

  • #2
    Rufe hinter dem Body-Tag die Funktion ob_start() auf ... vor dem schließenden Body-Tag:

    PHP-Code:
    $body strtolower(ob_get_contents());
    ob_end_clean();
    echo 
    $body
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Danke! Im Prinzip funktionierts jetzt so, ich will aber nur den Text zwischen den Tags (wegen casesensitiver URLs), so nach dem Prinzip

      Code:
      $body = ob_get_contents();
      $body = ereg_replace(">(.*)<",">".strtolower('\1')."<",$body);
      bloss, dass ich das mit dem strtolower innerhalb des regulären Ausdrucks nicht geregelt krieg. Wie muss ich das schreiben, dasses funktioniert?

      Kommentar


      • #4
        Funktionen verschachteln: ereg_replace und strtolower

        Ich möchte in einem String alle Texte, die zwischen HTML-Tags stehen (aber nicht die Tags selbst), in Kleinbuchstaben umwandeln. Wie kann ich das mit regulären Ausdrücken und strtolower realisieren? Irgendwie müsste das ja so wie unten (siehe das [color=red]rotgeschriebene[/color]) verschachtelt werden, aber ich weiß nicht, wie ich das strtolower syntaxmäßig korrekt einbinde, so dass das Suchmuster "\\1" in Kleinbuchstaben umgewandelt wird.

        Code:
        $body = ereg_replace(">(.*)<", ">".strtolower[color=red](\\1)[/color]."<", $body);
        Vielen Dank für Eure Tipps.

        Kommentar


        • #5
          naja. dafür musst du jetzt keinen neuen thread aufmachen.

          *ZUSAMMENFÜHR*
          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


          • #6
            Sorry, kommt net wieder vor!

            Freue mich weiterhin über jeden Tipp zur zweiten Frage ...
            Zuletzt geändert von Susi21; 11.03.2004, 19:34.

            Kommentar


            • #7
              Hat niemand hier Rat für das Verschachtelungsproblem 3 Posts weiter oben?

              Kommentar


              • #8
                (wegen casesensitiver URLs)
                was. sowas gibts?

                Hat niemand hier Rat für das Verschachtelungsproblem 3 Posts weiter oben?
                schreib alles klein!
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  schreib alles klein!
                  Ja genau des geht doch net. Sonst würd ich ja net fragen! Und schließlich will ich mein Shop-System (osCommerce) nicht komplett umcoden, das nun mal mit Variablen wie "cPath=12" in der URL arbeitet und "cpath=12" halt ignoriert ...

                  Würde mich weiterhin über konstruktive Tipps für eine Anfängerin freuen ...

                  Kommentar


                  • #10
                    Re: Funktionen verschachteln: ereg_replace und strtolower

                    wie ich das strtolower syntaxmäßig korrekt einbinde, so dass das Suchmuster "\\1" in Kleinbuchstaben umgewandelt wird.
                    Code:
                    $body = preg_replace("/>(.*)</U", ">".strtolower('\\1')."<", $body);
                    eiegntlich sollte das so gehen?
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      Hm, das funktioniert im Prinzip schon, bei mir aber leider nur, wenn ich im Ersetzungsmuster statt der strtolower-Funktion einfach eine feste Zeichenkette verwende, z.B. ">irgendwas<". Dann hab ich wirklich zwischen allen Tags auf meiner Seite "irgendwas" stehen. Das Suchmuster und das Grundprinzip stimmt also.

                      Leider schluckt er die Ersetzung mit strtolower aber nicht. In diesem Fall findet keine Ersetzung statt, die Seiten bleiben unverändert

                      Kommentar


                      • #12
                        probier den mal:
                        Code:
                        $body = "hjdABCj kHsk >FSJKHJ FDHJKH FKJHD<jk JKH JHKJ HKhjkhk";
                        echo $body = preg_replace('!>(.*)<!Ue', 'strtolower("\\0")', $body);
                        Kissolino.com

                        Kommentar


                        • #13
                          WOWWWW! Vielen Dank, das funktioniert schon mal relativ gut! Kannst Du mir als Anfänger kurz erklären, was bei dem Konstrukt
                          Code:
                          '!>(.*)<!Ue'
                          die Ausrufezeichen und die Optionen "Ue" bewirken?

                          Kommentar


                          • #14
                            '!' = delimiter, die begrenzer
                            (ich benutz die lieber als / oder \ oder whatever)

                            modifier:
                            'U' = ungreedy => ungierig
                            'e' = bewirkt, dass strlower() ausgeführt wird

                            mehr dazu findest du in den tutorials => regular expressions
                            Kissolino.com

                            Kommentar


                            • #15
                              die Ausrufezeichen und die Optionen "Ue" bewirken?
                              ! ist delimiter, U ist ungreediness (nimm die erste übereinstimmung, die gefunden wird), e ist .. für preg_replace ... ersatzstring wird ...
                              Die Zeit hat ihre Kinder längst gefressen

                              Kommentar

                              Lädt...
                              X