Text einmalig ersetzen

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

  • Text einmalig ersetzen

    Nachdem ich 6 von 20 Seiten über ersetzen durchgemacht hab, stell ich doch mal ne Frage

    Ich such ne Möglichkeit, in nem Text nur das erstmalige Vorkommen eines Worts zu ersetzen und nicht alle, wie das eben str_replace macht.



    cnow

  • #2
    http://www.php.net/preg-replace wird dein freund
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Danke, aber irgendwas mach ich falsch, in der Doku steht, limit ist int.
      Version : PHP 4.3.4

      Fehlermeldung:

      Delimiter must not be alphanumeric or backslas'h in Zeile soundso'

      Mein Code:

      $Eintrag und $EintragNeu sind Strings, in $array steht ein text aus ner MySQL-DB

      $array = preg_replace($Eintrag, $EintragNeu, $array,1);


      cnow

      Kommentar


      • #4
        Original geschrieben von cnow
        Danke, aber irgendwas mach ich falsch, in der Doku steht, limit ist int.

        Fehlermeldung:
        Delimiter must not be alphanumeric or backslas'h in Zeile soundso'
        limit und delimiter sind zwei ganz verschiedene sachen.

        delimiter sind die zeichen, die dein suchmuster vorne und hinten begrenzen. das kann z.b. ! sein, oder auch /. nur aufpassen, dass der delimiter, sollte er denn auch im suchmuster vorkommen, natürlich maskiert werden muss.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Jaaa,danke,es funktioniert!

          Ihr seid echt fix hier


          cnow

          Kommentar


          • #6
            So ganz klappt es doch ncoh nicht.

            Ich ersetze damit URL durch ne andere URL

            http://www.ebay.de -> http://www.bla.de funktioniert auch einwandfrei, aber

            http://cgi.ebay.de/ws/eBayISAPI.dll?...tem=2044596179
            nach http://www.bla.de geht nicht.

            mein preg_replace sieht so aus

            $array = preg_replace("!$Eintrag!", $EintragNeu, $array,1);

            Hab auch mal * o.ä als Delimiter genutzt. gleiches Ergebnis


            cnow

            Kommentar


            • #7
              mein preg_replace sieht so aus
              $array = preg_replace("!$Eintrag!", $EintragNeu, $array,1);
              sehr witzig. was geht denn nicht ...

              Hab auch mal * o.ä als Delimiter genutzt. gleiches Ergebnis
              nein, ehrlich? was hattest du erwartet?
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                Also moment mal, ich würd hier nicht so dumm fragen, wenn ich nicht Anfänger wär. Es besteht ja die Möglichkeit, dass verschiedene Delimiter verschiedene Auswirkungen haben

                Ich les aus ner HTML Datei URLs aus und ersetz die durch ne andere URL.

                Bbeispiel: siehe oben

                Problem ist, dass alles, was ein '?' enthält von preg_replace nicht erkannt und ersetzt wird.

                Im Forum hab ich schon ein paar Sachen gefunden, aber da gings hauptsächlich drum, aus Text nen Link zu machen, aber das hilft mir nicht weiter, da bei den Sachen immer alle Links in nem Dokument ersetzt wurden, bei mir aber eine explizite URLdurch ne andere explizite URLersetzt werden soll.


                cnow

                Kommentar


                • #9
                  hmm,

                  metacharaktere müssen mit \ maskiert werden
                  EDIT:
                  falls sie nicht als metacharaktere benutzt werden

                  http://www.php-resource.de/tutorials/read/10/1/

                  EDIT:
                  http://www.php-resource.de/manual.php?p=function.quotemeta ist dein freund
                  Zuletzt geändert von derHund; 20.02.2004, 20:29.
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    preg_replace() hat recht weit geholfen, danke.


                    cnow

                    Kommentar

                    Lädt...
                    X