Zum Beispiel, wenn Sie einen String als Teil einer URL verwenden möchten, diesen aber für diese Art der Verwendung sicher machen müssen.
function replace_accents($str) {
$str = htmlentities($str, ENT_COMPAT, "UTF-8");
$str = preg_replace('/&([a-zA-Z])(uml|acute|grave|circ|tilde);/','$1',$str);
return html_entity_decode($str);
}
Oder Sie verwenden einfach die bereits in PHP implementierten Funktionen ><
Der $unsafe-Wert, der über urlencode übergeben wird, ergibt Folgendes: "Hello%20Dani%C3%ABl"
Das sind alles gültige Zeichen innerhalb einer URL. Es funktioniert sogar bei sogenannten Multibyte-Zeichen, die in Koreanisch, Japanisch, Mandarin und ähnlichen Sprachen verwendet werden. Das habe ich auf die harte Tour herausgefunden, als ein Umfragesystem begann, Kommentare abzuschneiden.
Das JavaScript-Äquivalent ist encodeURI / encodeURIComponent und zum Rückgängigmachen verwenden Sie decodeURI / decodeURIComponent.
function replace_bishnoi($str) {
$str = htmlentities($str, ENT_COMPAT, “UTF-8”);
$str = preg_replace(‘/&([a-zA-Z])(uml|acute|grave|circ|tilde);/’,’$1′,$str);
return html_entity_decode($str);
}
Um den umgekehrten Weg zu gehen, wenn Sie mit kodierten Zeichen konfrontiert werden, möchten Sie vielleicht das Zeichen erhalten, das einem akzentuierten Varianten am nächsten kommt. Z. B.: Sie möchten einen Song mit DJ Tiësto im Titel speichern, möchten aber, dass er wie DJ Tiesto herauskommt, wenn Sie in Ihrem Skript einen Dateinamen erstellen.
Da dies so kodiert wird, wie wir es nicht wollen, hier ein Link zur Quelle: http://lievheid.nl/examples/decode_ascii/index.phps
Das ursprüngliche Snippet reicht nicht aus. Unicodes, die nicht von htmlentities() abgedeckt sind, werden ignoriert. Wenn Sie einen UTF-8-String (sicher) in alphanumerische Zeichen für die Verwendung in URLs umwandeln möchten, probieren Sie urlify() aus.
Ich habe das gemacht
function replace_accents($str) {
$str = htmlentities($str);
$str = preg_replace(‘/&([a-zA-Z])(uml|acute|grave|circ|tilde|cedil|elig|ring|th|slash|zlig|horn);/’,’$1′,$str);
return html_entity_decode($str);
}
function replace_accents($str) {
$str = htmlentities($str);
$str = preg_replace('/&([a-zA-Z])(uml|acute|grave|circ|tilde|cedil|elig|ring|th|slash|zlig|horn);/','$1',$str);
return html_entity_decode($str);
}
Danke !!