[PHP5] Problem mit str_replace

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

  • [PHP5] Problem mit str_replace

    Hi,
    ich habe ein Problem mit meinem Code:

    Code:
    //Links
    $muster = "|\[link\]([-_./a-zA-Z0-9äöüß !&%#?,'=:~]+)\[/link\]|i";
    $linkstring = "<a href=\"zubehoer.php?name=\$1&kategorie=Säfte\">\$1</a>";
    $row['beschreibung'] = preg_replace($muster, str_replace(" ", "_", $linkstring), $row['beschreibung']);
    ///Links
    $1 ist ja dann das Ergebnis von von der Suche also z.B.

    Cream of Coconut

    Die Leerzeichen soll dann durch str_replace mit einem _ ersetzt werden. Das funktioniert aber leider nicht.

    Das Wort wird dann nicht einmal verlinkt. Lediglich [link] & [/link], das vor dem Wort steht, werden entfernt. (Ohne str_replace geht es, also muss es an str_replace liegen)

    Danke für eure Hilfe
    Gruß Marc

  • #2
    Wenn du das machen würdest, was du behauptest, würde es vermutlich funktionieren.

    Du ersetzt die Leerzeichen in $linkstring. Nur, dass dieser gar keine Leerzeichen enthält.

    So und jetzt nochmal überlegen, in welcher Reihenfolge was passiert.

    Callback schmeiß' ich mal nur in den Raum, weil ich deine Sache da nicht so genau angesehen habe. (so wie du )

    Kommentar


    • #3
      Re: [PHP5] Problem mit str_replace

      Original geschrieben von Sp33dy G0nz4l3s
      (Ohne str_replace geht es, also muss es an str_replace liegen)
      Du bist wirklich merkbefreit, oder?

      http://forum.de.selfhtml.org/?t=154975&m=1008849
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Du hattest mir ja immer nur geschrieben wie ich nach dem Fehler suchen soll... deswegen habe ich hier einmal gefragt.

        Trotzdem Danke das du mir die Tipps gegeben hast.

        Vielen Dank auch an dich TobiaZ

        Ich habe nun zuerst die ganze Zeit versucht preg_replace_callback zu verstehen. Leider hat es damit nie richtig geklappt wie es klappen sollte.

        Dann ist mir diese Idee gekommen und endlich funktioniert es

        Code:
        //Links
        $muster = "|\[link\]([-_./a-zA-Z0-9äöüß !&%#?,'=:~]+)\[/link\]|i";
        preg_match_all($muster, $row['beschreibung'], $zutat);
        foreach($zutat['1'] as $value){
        $linkstring = "<a href=\"zubehoer.php?name=".str_replace(" ", "_", $value)."&kategorie=Säfte\">".$value."</a>";
        $muster = "|\[link\]".$value."\[/link\]|";
        $row['beschreibung'] = preg_replace($muster, $linkstring, $row['beschreibung']);
        }
        ///Links
        echo $row['beschreibung'];
        Ich hoffe, dass das eine "saubere" Lösung ist. Falls jemand noch einen kleinen Verbesserungstipp hat lese ich mir den gerne durch.

        Gruß Marc

        Kommentar


        • #5
          Dann ist mir diese Idee gekommen und endlich funktioniert es
          In welchem Forum warst du nocht?

          Kommentar


          • #6
            Original geschrieben von Sp33dy G0nz4l3s
            Du hattest mir ja immer nur geschrieben wie ich nach dem Fehler suchen soll...
            Worauf du aber keine Lust hattest ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar

            Lädt...
            X