6

我想用 PHP 计算字符串的长度。该字符串包含 HTML 实体编号,它增加了计算的字符数:–当我只希望它计为 1 时,它被计为 7。

如何将 html 编号实体转换为特殊字符仅以 1 长度计的形式?

示例字符串:

Goth-Trad – ‘Cosmos’

编码:

$string = html_entity_decode('Goth-Trad – ‘Cosmos’');
    echo strlen($string);

当我在寻找“20”时,会产生“38”。出了什么问题?

4

3 回答 3

5

你可以使用这个:

$html = 'Goth-Trad – ‘Cosmos’';
echo strlen(utf8_decode(html_entity_decode($html, ENT_COMPAT, 'utf-8')));
于 2012-01-02T14:02:39.710 回答
4

只是解码它并计算解码的一个?

$string = html_entity_decode("Goth-Trad – ‘Cosmos’",ENT_QUOTES,"UTF-8");
echo strlen($string);
于 2012-01-02T14:01:26.523 回答
-1

请尝试使用以下编码功能:

<?php   

$string='Goth-Trad &#8211; &#8216;Cosmos&#8217;'; 

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

?>
于 2012-11-30T08:21:17.653 回答