我想用PHP计算字符串的长度。该字符串包含HTML实体编号,这会增加计算的字符数:短划线为–
,当我只想将其计为1时,计为7。
如何将html编号的实体转换为特殊字符只计为长度为1的表单?
示例字符串:
Goth-Trad – ‘Cosmos’
代码:
$string = html_entity_decode('Goth-Trad – ‘Cosmos’');
echo strlen($string);
当我正在寻找'20'时,产生'38'。出了什么问题?
答案 0 :(得分:3)
只需解码它并计算解码后的那个?
$string = html_entity_decode("Goth-Trad – ‘Cosmos’",ENT_QUOTES,"UTF-8");
echo strlen($string);
答案 1 :(得分:3)
您可以使用:
$html = 'Goth-Trad – ‘Cosmos’';
echo strlen(utf8_decode(html_entity_decode($html, ENT_COMPAT, 'utf-8')));
答案 2 :(得分:-1)
请尝试使用以下编码功能:
<?php
$string='Goth-Trad – ‘Cosmos’';
echo html_entity_text_length($string); // Calling the function
//html_entity_text_length function start
function html_entity_text_length($string){
preg_match_all("/&(.*)\;/U", $string, $pat_array);
$additional=0;
foreach ($pat_array[0] as $key => $value) {
$additional += (strlen($value)-1);
}
$limit+=$additional;
return strlen($string)-$limit;
}
//html_entity_text_length function end
?>