Функция немного странная. Первый вызов функции преобразует строку, закодированную в UTF-8, в строку, закодированную в ASCII, где не отображенные символы преобразуются в сущности HTML (именованные сущности, если они существуют в HTML 4, в противном случае числовые сущности). Например:
echo mb_convert_encoding("foo\"é⌑'&", "HTML-ENTITIES", "UTF-8");
выходы
foo"é⌑'&
Таким образом, это отличается от множества тем, что 1) числовые объекты используются в данных обстоятельствах и 2) специальные символы, такие как &
, "
или <
, не затрагиваются.
Второй вызов функции, однако, более странен. Он находит, если именованный объект только с одним буквенно-цифровым символом ASCII начинает ввод, и, если это так, вызывает htmlentities
для этого ввода (на самом деле это не так, потому что модификатор e
не используется и имя функции отсутствует в строке, поэтому оно выполняется при оценке аргументов). Этот вызов не имеет никакого эффекта, потому что htmlentities('${1}')
равен '${1}'
, а обратная ссылка 1 охватывает все совпадение, поэтому, даже если выражение совпадает, подстановка отсутствует.