是否可以将诸如&符&
之类的特殊字符输出为&
而不是&
使用htmlenties或htmlspecialchars时,我找不到提供此行为的设置。
任何建议。
答案 0 :(得分:0)
您需要先urlencode
,然后再str_replace
$string = 'Stackoverflow # & " ';
$string = urlencode($string);
$find = ['%', '+'];
$replace = ['&#x', ' '];
$string = str_replace($find,$replace, $string);
echo $string;
答案 1 :(得分:0)
我自己弄清楚了。 我使用mb_ord与ord相似,只不过它用于UTF-8等多字节编码。 另外,只有在安装了PHP 7.2的情况下,它才起作用。
<?php
$text = html_entity_decode('∞ä€äãâ',ENT_COMPAT | ENT_HTML401,'UTF-8');
$text_converted = '';
for($i=0;$i<mb_strlen($text,'UTF-8');$i++){
$text_converted .= sprintf('&#x%X;',mb_ord(mb_substr($text,$i,1,'UTF-8')));
}
echo $text_converted;
echo '<br>';
echo str_replace('&','&',$text_converted);
echo '<br>';
echo $text;
?>