Warning: Creating default object from empty value in /www/htdocs/finrik/blog/wp-includes/functions.php on line 292

Strict Standards: Only variables should be passed by reference in /www/htdocs/finrik/blog/wp-includes/gettext.php on line 66
www.finrik.at - Die persönliche Webseite von Wolfgang Hollaus
PHP und UTF-8

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/finrik/blog/wp-includes/functions-formatting.php on line 76

Noch ist php6 nicht in Sichtweite. Zeit wird es allerdings schön langsam. Im Moment funktioniert die Verarbeitung von UTF-8 Strings nur sehr dürftig, und die einzelnen Versionen haben immer wieder Bugs dabei.

Selbst mit mbstring hat man immer wieder so seine Problemchen. z.B. Dieser Code funktioniert unter php5 nicht, aber schon unter php4:

<?php

header‘Content-Type: text/html; charset=UTF-8′ );

$str “Das den sind kommenden schlimme über Schäden oder am Dach!”;
echo 
$str ‘<br>’;

mb_internal_encoding‘UTF-8′ );
echo 
preg_replace(“/\b(das|den|über|sind|am|oder)\b/iu”‘@@@’$str ) . ‘<br>’;
echo 
mb_eregi_replace(“\b(das|den|über|sind|am|oder)\b”‘@@@’$str ) . ‘<br>’;

?>

Eigentlich sollte ja beides funktionieren. Wobei das \b in Kombination mit eregi_replace ja eigentlich ein Schwachsinn ist. Zumindes losen kann man das Problem, wenn man die Zeile mb_regex_encoding‘UTF-8′ ); noch hinzufügt.

Kommentar schreiben: