Есть ли какая-либо встроенная PHP-функция для замены немецкого «Umlaute»?

#php #html #character-encoding

#php #HTML #кодировка символов

Вопрос:

Я должен заменить Html-представление немецкого «Umlaute» в php-коде, я делаю это следующим образом:

 Private function replaceHTMLEntities(amp;$str){
$str = str_replace('amp;Auml;',chr(196),$str); 
    $str = str_replace('amp;Ouml;',chr(214),$str);
    $str = str_replace('amp;Uuml;',chr(220),$str); 
    $str = str_replace('amp;auml;',chr(228),$str);
    $str = str_replace('amp;ouml;',chr(246),$str);
    $str = str_replace('amp;uuml;',chr(252),$str);
    $str = str_replace('amp;szlig;',chr(223),$str);
}
  

Есть ли какая-либо встроенная функция в php для сокращения этого кода?

Комментарии:

1.php.net/manual/en/function.html-entity-decode.php ?

Ответ №1:

Я не уверен насчет встроенной функции для этого, но, по крайней мере, вы можете сократить и оптимизировать свой код, используя str_replace параметры в виде массивов:

 private function replaceHTMLEntities(amp;$str){
    $search  = ['amp;Auml;', 'amp;Ouml;', 'amp;Uuml;']; // and others...
    $replace = [chr(196), chr(214), chr(220)]; // and others...

    $str = str_replace($search, $replace, $str);
}
  

Подсказка: не используйте передачу по ссылке, если это возможно. Это сложнее отлаживать, и изменения не очевидны.