SUCKUP.de

UTF-8 & PHP

PHP-Logo

PHP-Logo

This blog post has been published on 2014-05-24 and may be out of date.

PHP 5 und frühere Versionen haben keine nativen Unicode-Unterstützung, dass heißt im Ernstfall muss man seine Applikation via “mbstring”-, “iconv-” und “intl”-Funktionen nachbessern. Daher habe ich eine kleine PHP-Bibliothek zusammengestellt, welche via composer installiert werden kann.

Beispiel:

echo strlen($string) . "\n<br />";
echo UTF8::strlen($string) . "\n<br />";
// output:
// 70
// 67

$string_test1 = strip_tags($string);
$string_test2 = UTF8::strip_tags($string);

echo strlen($string_test1) . "\n<br />";
echo UTF8::strlen($string_test2) . "\n<br />";
// output:
// 53
// 50

Erklärung:
Trotz seines Namens zählt “strlen()” nicht Zeichen sondern Bytes, bei UTF-8 kann ein Charakter jedoch bis zu vier Bytes [rfc3629] lang sein.

Installation:
https://packagist.org/packages/voku/portable-utf8

Dokumentation:
https://github.com/voku/portable-utf8/master/doc/classes/voku.helper.UTF8.html

Based on Hamid Sarfraz’s work: http://pageconfig.com/attachments/portable-utf8.php