Bulletinでも使ってます。
<?php function myStrlen($str){ // HTMLタグを削除 $str = strip_tags($str); // HTML特殊文字を半角1文字としてカウント $str = ereg_replace("&[a-zA-Z]{1,5};", " ", $str); // Unicode10進文字を半角1文字としてカウント $str = ereg_replace("&#[0-9]{1,5};", " ", $str); // PHPマルチバイト対応 if( function_exists('mb_strlen') ){ $result = mb_strlen($str); }else{ $result = strlen($str); } return $result; }