Wie bekomme ich eine Variable aus einem Regulären Ausdruck?

multimolti

Erfahrenes Mitglied
Moin.

Ich bin auf ein Problem gestoßen, und zwar:
Ich habe mir diese Funktion geschrieben:
PHP:
        function ImageResize($Bild){
        $info = getimagesize($Bild);
        if ($info[0] > $maximgbreite)
            {$info[0] = $maximgbreite; }
        return "<img src=\"$Bild\" height=$info[0] border=\"0\">";
        }
...und möchte die nun einsetzen. Ich habe eine andere Funktion, die BB-Codes umwandelt, und dort soll jedes mal, wenn jemand [ img ] pfad/datei.jpg [ /img ] macht, nachgeschaut werden, ob die Breite größer als $maximgbreite ist, und wenn ja, verkleinert werden.
Meine Umwandel-Funktion (ein Ausschnitt):
PHP:
    $entry = eregi_replace("\[img\]([^\[]+)\[/img\]", ImageResize($wassollhierhin) ,$entry);
Jetzt ist meine Frage:
Es wird etwas im Stil von "\[img\]([^\[]+)\[/img\]" eingegeben, wie mache ich meiner Funktion klar, welchen Bild-Pfad sie nehmen soll?
 
Hallo multimolti :)

Nutze preg_replace_callback der Aktualität wegen siehe preg_replace_callback()
Da steht auch wie du es zu benutzen hast (!)

PHP:
$entry = preg_replace_callback("!\[img\](.*)\[\/img\]!isU", ImageResize($1) ,$entry);

Hoffe das klappt so ;-)
 
Tja, Sorry, aber das geht so nicht, weil in PHP Variablen nicht mit Zahlen anfangen dürfen. Irgendwie muss die dumme Variable doch benannt werden können, oder?

Code:
parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$'
 
Zurück