web-dev-qa-db-ja.com

投稿タイトルの長さを数えるにはは?

犯罪と罰 というタイトルのエントリがあるとしましょう。

次の行を使用して、私のエントリータイトルの文字数を数えようとしました。

echo strlen( get_the_title() );

私はコードが Crime&Punishment に18文字を与えると思っていましたが、結果は23文字になりました。

上記のコードでは、タイトル内のシンボルがHTML codeとして読み取られるため、希望する結果が得られませんでした。このような場合の回避策はありますか?

3
Leader

実際には2つの問題があります。

  1. &&としてエンコードされているので、最初に html_entity_decode() を使用する必要があります。

  2. マルチバイト文字は複数のバイトを必要とし、strlen()はそれらで失敗します。 strlen()を使用しないでください

だから、このようなものを使用してください:

$title  = html_entity_decode( get_the_title(), ENT_XML1, 'UTF-8' );
$length = mb_strlen( $title, 'utf-8' );
7
fuxia

試してください:

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