Joomla: preg_replace() Fehler beheben…

Ab der Joomla Version 1.5.10 ist in der PHP Datei methods.php ein neuer Aufruf hinzugekommen, welcher folgenden Fehler in den Error Logs vom Apache schreibt:

[Wed Sep 01 00:08:56 2010] [error] [client 88.217.170.134] PHP Warning:  preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/servers/raclet.net/docs/rACLet/libraries/joomla/methods.php on line 58

Dieser Fehler äussert sich darin, das die Link Auflösung nicht mehr funktioniert. Der Besucher der Seite klickt auf eine Unterseite und landet dann auf der Hauptseite.
Der Fehler ist die fehlende UTF8 Unterstützung in der Library PCRE.

Die Lösung ist entweder Neukompilierung der betroffenen Module, was auch die sauberste ist oder folgende, falls man dies nicht in den Hand hat:

In der PHP Datei methods.php (libraries/joomla) in der Zeile 58 den Eintrag von

$url = preg_replace('/\s/u', '%20', $url);

auf

$url = preg_replace('/\s/', '%20', $url);

ändern. Also das u löschen.
Nachteil dieser Lösung ist, wenn ein Update aufgespielt wird, muss dieses auch wieder angepasst werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert