elschbee
Grünschnabel
Ich habe ein Problem mit preg_replace bzw. mit einem Funktionsaufruf innerhalb von preg_replace und komme nicht weiter.
Ich habe eine Variable $content in der eventuell ein Link sein kann, der dann codiert werden soll. Ein Link ist in $content so eingebaut [EMAILLINK]user@domain.de[/EMAILLINK] und soll an meine Funktion emaillink() übergeben werden.
Ich suche und ersetze mit dieser Funktion:
Die Funktion emaillink() sieht während der Entwicklung so aus:
Nur kommt da leider nur Blödsinn raus.
Nochmal am Stück:
Meine Variable wird also gefunden, ausgegeben und gleichzeitig bekomme ich die Länge von '$1' (=2). Eigentlich will ich aber die Länge von 'user@domain.de', also 14.
Ich fürchte ich stehe dick auf dem Schlauch. Wo ist mein Fehler?
Ich habe eine Variable $content in der eventuell ein Link sein kann, der dann codiert werden soll. Ein Link ist in $content so eingebaut [EMAILLINK]user@domain.de[/EMAILLINK] und soll an meine Funktion emaillink() übergeben werden.
Ich suche und ersetze mit dieser Funktion:
PHP:
$content = preg_replace("!\[EMAILLINK\](.*?)\[/EMAILLINK\]!", emaillink("$1"), $content);
Die Funktion emaillink() sieht während der Entwicklung so aus:
PHP:
function emaillink($adresse) {
return $adresse.' # '.strlen($adresse);
}
Nur kommt da leider nur Blödsinn raus.
Nochmal am Stück:
PHP:
//die funktion ---
function emaillink($adresse) {
return $adresse.' # '.strlen($adresse);
}
//der inhalt ---
$content = [EMAILLINK]user@domain.de[/EMAILLINK];
//verarbeitung
$content = preg_replace("!\[EMAILLINK\](.*?)\[/EMAILLINK\]!", emaillink("$1"), $content);
echo $content;
//ausgabe
user@domain.de # 2
Meine Variable wird also gefunden, ausgegeben und gleichzeitig bekomme ich die Länge von '$1' (=2). Eigentlich will ich aber die Länge von 'user@domain.de', also 14.
Ich fürchte ich stehe dick auf dem Schlauch. Wo ist mein Fehler?