woodfighter: preg_replace ersetzen

Beitrag lesen

Tach,

$message = preg_replace_callback('#\[ url=([^\]]*) \] (.*?) \[ /url \]#smx',
Function $m{
    return $m[2];
}, $message);

Hat nicht funktioniert, die Webseite war leer.

Die Fehlermeldung landet dann im Error-Log des Webservers.

Lag es daran dass Array 0-basiert ist und ich $m[1] schreiben müsste?

Ja, Arrays sind 0-basiert, aber RegEx-Callbacks auch. Du hast bei der Definition deiner anonymen Funktion allerdings die Klammern um den Parameter vergessen. Das Syntax-Highlighting hier im Forum zeigt diesen Fehler übrigens auch an (roter Hintergrund); falls dein Editor das nicht tut, solltest du dir vielleicht einen anderen besorgen.

mfg
Woodfighter

P.S. PHP ist zwar teilweise[1] case-insensitive, aber üblicher Stil ist, dass Keywords wie function klein geschrieben werden.


  1. http://the-echoplex.net/log/php-case-sensitivity ↩︎