Ich habe diese Standardfunktion, um gültige URL-Strings ohne die ungültigen URL-Zeichen zurückzugeben. Die Magie scheint in der Zeile nach dem // Entfernen von unerwünschten Zeichen zu stehen.
Dies ist aus der Symfony-Framework-Dokumentation entnommen: Ссылка , die wiederum genommen wird aus Ссылка aber ich spreche nicht Tschechisch ;-)
%Vor%cf @tchrist, mit INTL php Erweiterung
%Vor%eéèêëiîïoöôuùûüaâäÅ Ἥ ŐǟǠ ǺƶƈƉųŪŧȬƀ␢ĦŁȽŦ ƀǖ wird
eeeeeiiioouuuuaaaA Η OaA AƶƈƉuUŧOƀ␢ĦŁȽŦ ƀu
Wie Tchrist betont, werden nicht alle Unicode-Zeichen als zerlegbar angesehen:
Aus Unicode-Diagrammen extrahieren:
U0080.pdf
00CF Ï LATIN CAPITAL BRIEF I MIT DIAERESE
≡ 0049 I 0308 ¨
NB dieses Symbol «≡» weist auf eine verfügbare Zerlegung hin
00D0
→ 00F0 ð lateinischer Kleinbuchstabe eth
→ 0110 Đ Lateinischer Großbuchstabe d mit Strich
→ 0189 Ɖ Lateinischer Großbuchstabe afrikanischer d
keine Zerlegung verfügbar, IMHO seltsam (wir könnten ASCII-Buchstaben D als akzeptables Äquivalent betrachten).
U0100.pdf
0110 Đ LATINISCHER GROSSBUCHSTABE D MIT SCHLAG
→ 00D0 - lateinischer Großbuchstabe eth
→ 0111 đ lateinischer Kleinbuchstabe d mit Strich
→ 0189 Ɖ Lateinischer Großbuchstabe afrikanischer d
noch seltsamer: Dieser ist als LATIN CAPITAL LETTER D (mit Strich) gekennzeichnet, aber nicht als solcher dekompositionierbar! Vielleicht sollte eine kühlere Lösung darin bestehen, die Unicode-Beschreibung jedes Char zu erhalten und sie mit der Beschreibung jedes ASCII-Charts zu vergleichen (und entsprechend zu ersetzen). Jemand? ; -]
cf Ссылка
Wenn Sie Transliteration machen, müssen Sie sicherstellen, dass Ihr LC_COLLATE korrekt eingestellt ist, ansonsten wird das Standard-POSIX verwendet.
Schauen Sie sich Ссылка
anIch bin versucht, "nichts" zu sagen, obwohl das ein bisschen außerhalb meiner Expertise liegt. PHPs iconv () ist berüchtigt und die Inspiration für viele Problemumgehungen, einschließlich
Lesen Sie die Kommentare zur iconv () Dokumentation , um weitere Informationen zu erhalten. (Oder Mitgefühl. Zu nahe, um anzurufen.)
Es scheint, als wäre der Standard, dies zu handhaben, mit einer Funktion zum Entfernen von Akzenten, die Sie in Bibliotheken wie gedeihen oder CMS's mögen
Es scheint, dass es von der PHP-Version abhängt ...
PHP 7.0.0RC8 (cli) (gebaut: 25. November 2015 12:36:50) (NTS) Copyright (c) 1997-2015 Die PHP-Gruppe Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies mit Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, von Zend Technologies
%Vor%PHP 7.0.8-1 ~ dotdeb + 8.1 (kli) (NTS) Copyright (c) 1997-2016 Die PHP-Gruppe Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies mit Zend OPcache v7.0.8-1 ~ dotdeb + 8.1, Copyright (c) 1999-2016, von Zend Technologies
%Vor%Tags und Links string php utf-8 unicode unicode-normalization