2017-02-21 15 views
0

私は、指定されたURLからHTMLコンテンツを含む文字列を出力しています。私がしようとしていることは、どれくらいの単語が文字列内にあり、何回出現するかを調べることです。文字列中の単語の数を数えるPHP

例:

today | 1

どのように| 1

こんにちは、 1つの

コード:

$string = "Hello how are you today" 
+0

を役に立てば幸い(http://php.net/manual/en/function.str-split.php)を使って空白を分割し、配列をループして、その単語を別の配列のキーとして使用し、毎回インクリメントします。任意の単語境界で分割したい場合は、['preg_split()'](http://php.net/manual/en/function.str-split.php)を使い、 '\ b'を分割します。ちょうど私の頭の上から離れて。 – alanlittle

答えて

0

$word_counts = []; 

// remove scripts and styles completely, then strip tags 
$cResult = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $cResult); 
$cResult = preg_replace('#<style(.*?)>(.*?)</style>#is', '', $cResult); 
$cResult = strip_tags($cResult); 

// strip all characters that are not letters: 
$word_array_raw = explode(' ',preg_replace('/[^A-Za-z ]/', ' ', $cResult)); 

// loop through array: 
foreach ($word_array_raw as $word) { 
    $word = trim($word); 
    if($word) { 
     isset($word_counts[$word]) ? $word_counts[$word]++ : $word_counts[$word] = 1; 
    } 
} 

// Array with all stats sorted in descending order: 
arsort($word_counts); 

// Output format you wanted: 
foreach ($word_counts as $word=>$count) { 
    echo "$word | $count<br>"; 
} 

は、私はあなたのコードは、あなたの質問に関係しているかわからないんだけど、あなたは[ `str_split()`]試みることができる、それが

+0

結果からhtmlタグ名を削除する方法はありますか? – user7588392

+0

added strip_tags – paulz

+0

私はそれを試みました。それは単に括弧を削除しただけです。私はまだ言葉自体が残っている。たとえば、getElementById。 – user7588392

0

このような何か:

$s = "lorem ipsum dolor sit amet, consectetur adipiscing elit, sit sed do lorem eiusmod tempor"; 
    $w = preg_split('=[^\w]=', $s, NULL, PREG_SPLIT_NO_EMPTY); 
    $words = []; 

    foreach ($w as $word) { 
    if (!isset($words[$word])) $words[$word] = 0; 
    $words[$word]++; 
    } 
    print_r($words); 

出力:

Array 
(
    [lorem] => 2 
    [ipsum] => 1 
    [dolor] => 1 
    [sit] => 2 
    [amet] => 1 
    [consectetur] => 1 
    [adipiscing] => 1 
    [elit] => 1 
    [sed] => 1 
    [do] => 1 
    [eiusmod] => 1 
    [tempor] => 1 
) 

あなたが探しているものということですか?入力としてあなたの$ CRESULTを取っ

関連する問題