2016-10-24 16 views
-1

Microsoft Wordのようなテキストで文字を数えたいと思っています。空白文字とHTMLタグなしのPHP文字カウント

<p><b>Lorem Ipsum</b> is simply dummy text of the printing and typesetting industry.Tom's farm. 12th century.</p> 

12日 - > '番目は' 私が行うことができますどのように数12

の下で、特殊文字であるでPHPこと?

+0

タグと空白を削除してから数えます。私はあなたが「th」と「12」について何を意味するのか理解していません。例:https://eval.in/665455。 – chris85

+0

私はあなたの質問を正確に理解することはできません。どのような例を見せてもらえますか? – Mohammad

+0

なぜPHPを使って簡単に何かしたいですか?代わりにJqueryを使用できます。 PHPサーバサイドスクリプティングでは、PHPのような簡単なことを行う必要がない場合があります。 –

答えて

0

私の解決策は次のとおりです。

$content = 'Some Text...'; 

    $trim = strip_tags($content); 
    $trim=str_replace([" ","\n","\t","&ndash;","&rsquo;","&#39;","&quot;","&nbsp;"], '', $trim); 

    $totalCharacter = strlen(utf8_decode($trim)); 
0
$string = "<p><b>Lorem Ipsum</b> is simply dummy text of the printing and typesetting industry.Tom's farm. 12th century.</p>"; 
$string = strip_tags($string); 
$string = preg_replace("/\s/", "", $string); 
$character_count = strlen($string); 

ユニコード文字がある場合、strlenはおそらく2文字とカウントします。次に、mb_strlenを見てください。

+0

'th'はマルチバイト文字ではありません。また、正規表現を使うと正規表現が速く処理されます。 – chris85

+0

しかし、おそらく彼はどこかからテキストを取得し、ちょうどそれをここに表示する方法を知らなかった。多バイト文字を使用する場合に備えて、私はそれについて述べました。私はregex'esの専門家ではないので。より速く処理することを意味しますか? preg_replace( "/ \ s * /"、 ""、$ string); – alexandre

+0

はい '*'または '+'です。単一の文字でそれらをすべて個別に置き換えています。 'mb_strlen'と' strlen'は2文字であるため、2文字目として 'th'を数えます。 – chris85

関連する問題