Disons que j'ai une entrée intitulée Crime & Punishment
J'ai essayé de compter le nombre de caractères de mes titres d'entrée à l'aide de la ligne suivante:
echo strlen( get_the_title() );
Je m'attendais à ce que le code me donne 18 caractères pour Crime & Punishment , mais le résultat s'est avéré être de 23 caractères.
Le code ci-dessus ne m'a pas donné le résultat souhaité car il lisait les symboles contenus dans le titre sous la forme d'un code HTML . Y at-il une solution de contournement pour un tel cas?
Il y a en fait deux problèmes:
Le &
est codé en tant que &
, vous devez donc utiliser html_entity_decode()
first.
Les caractères multi-octets ont besoin de plus d'un octet, et strlen()
échouera avec eux. N'utilisez pas strlen () .
Alors utilisez quelque chose comme ceci:
$title = html_entity_decode( get_the_title(), ENT_XML1, 'UTF-8' );
$length = mb_strlen( $title, 'utf-8' );
Essayer:
<?php echo strip_tags(strlen(get_the_title())); ?>