+ Antworten
Ergebnis 1 bis 4 von 4

Thema: preg_replace Problem

  1. #1
    jph
    jph ist offline
    TP-Veteran jph ist auf einem guten Weg Avatar von jph
    Registriert seit
    Apr 2001
    Beiträge
    1.577

    preg_replace Problem

    Hallo zusammen,

    ich habe in der Variablen einen Quellcode liegen, der etwas enthält wie
    Code:
    [IMG=12][/IMG]
    Dies würde ich gerne umsetzten in ein Bild. Die "12" repräsentiert dabei eine ID des Bildes in der Datenbank (dort sind auch titel etc. hinterlegt).
    In der Klasse bild habe ich eine Methode getBild($bildID) die mir zu einer BildID den HTML-Code für ein bild liefert also:
    Code:
    <img src="meinbild.gif" alt="Mein titel" />
    Um nun automatisiert den "PseudoBBCode" oben zu übersetzten wollte ich folgenden PHP-Code nehmen:
    Code:
     $quellcode = preg_replace("/\[img=(.*?)\](.*?)\[\/img\]/", bild::getBild($1), $quellcode);
    Das scheint aber an dem $1 zu happern. Aber ich verstehe nicht warum. Den sowas wie:
    Code:
    $text = preg_replace("/\[img=(.*?)\](.*?)\[\/img\]/", "<img src=\"$1\" alt=\"$2\" />", $text);
    funktioniert ja auch


    Grüße

    Jan

  2. #2
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Der e-modifier ist dein Freund.

    Gruss
    Jan

  3. #3
    TP-Supporter blazehawk ist auf einem guten Weg
    Registriert seit
    Aug 2003
    Ort
    NRW
    Beiträge
    309
    Habs jetzt zwar nur schnell überflogen, aber würds nicht gehen, wenn du
    das einfach so löst, dass du vor dem preg_replace eine variable setzt, die deine funktion aufruft und dann einfach diese Variable einfügst (natürlich dabei die Sonderzeichen mit Backslashes versehen)?
    "Auch wer regelmäßig zu spät kommt, hat eine gewisse Zuverlässigkeit aufzuweisen"

  4. #4
    jph
    jph ist offline
    TP-Veteran jph ist auf einem guten Weg Avatar von jph
    Registriert seit
    Apr 2001
    Beiträge
    1.577
    stuckMojo gl&#228;nzt mal wieder mit regex kenntnissen und ich hab was dazu gelernt ;-) danke

    Die l&#246;sung lautet:
    Code:
     $quellcode = preg_replace("/\[IMG=(.*?)\](.*?)\[\/IMG\]/e", "''.bild::getBild('\\1','\\2').''", $quellcode);

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51