web-dev-qa-db-fra.com

Comment compter la longueur d'un titre de message?

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?

3
Leader

Il y a en fait deux problèmes:

  1. Le & est codé en tant que &, vous devez donc utiliser html_entity_decode() first.

  2. 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' );
7
fuxia

Essayer:

<?php echo strip_tags(strlen(get_the_title())); ?>
0
Gareth Gillman