Rolf B: IDN Domainnamen

Beitrag lesen

Hallo me-too,

bis PHP 5.2 war das eine PECL Extension, seit PHP 5.3 ist es gebündelt.

In PHP/Win muss man die DLL für die INTL Erweiterung aktivieren. Suche in deiner PHP.INI nach

;extension=php_intl.dll

und nimm das Semikolon am Zeilenanfang weg, wenn da eins steht. Wenn da keins steht, hm, dann war die Erweiterung schon aktiviert und es gab einen anderen Grund, dass die Funktion nicht gefunden wurde, aber dann bin ich ausgezählt.

Als zweites solltest Du die INTL Fehlermeldungen aktivieren, zumindest auf einer Testmaschine. Suche nach [intl] und sorge dafür, dass die Zeile

intl.error_level = E_WARNING

nicht mit einem Semikolon beginnt.

Bei mir hat diese Warning zur Erkenntnis geführt, dass ich meinen Sourcecode in UTF-8 speichern sollte (mein Simpel-Texteditor steht auf Latin-1), weil die Funktion offenbar einen UTF-8 Datenstrom erwartet. Ein in latin-1 gespeichertes idn_to_ascii("täst.de") führte ohne Warnings einfach zu einem Leerstring, und mit Warnings zur Fehlermeldung, dass er den Input nicht nach UTF-16 konvertieren könnte.

Möglicherweise kann man mit mb_... Funktionen etwas hexen und den Code als latin-1 gespeichert lassen, aber Speicherung als UTF-8 ist sicherlich die bessere Lösung.

Rolf

--
sumpsi - posui - obstruxi