preg_match_all找到单词链

时间:2016-07-08 06:47:22

标签: php

我正在编写一个关键字密度工具,但我在查找存在多个单词的关键字时遇到了一些问题。

我在Stack Overflow上使用了this主题的一些代码,但它并没有完全奏效。

例如,当我从网页上抓取一个非常大的文本时,它找不到多个关键字。例如:

如果我有文字“你好,这就是我。你好,这就是他。你好,这就是她。”而且我的关键字是“Hello this”,它不会多次计算“你好这个”。但是有3个'你好这个'的例子。

我的代码:

// Count words in the text
$word_count = explode(' ', $text);
$word_count = count($word_count);

// Count matches with the keyword
$keyword_count = preg_match_all("#{$searchterm}#si", $text, $matches);
$keyword_count = count($matches);

// Calculate density 
$density = $keyword_count / $word_count * 100;

如何让我的代码解决此问题?

2 个答案:

答案 0 :(得分:0)

  

$keyword_count = count($matches);

您应该计算计数匹配,这是$matches[0]。见var_dump($matches);

// Count matches with the keyword
preg_match_all("#({$searchterm})#si", $text, $matches);
$keyword_count = count($matches[0]); // or use $matches[1], in this case same

答案 1 :(得分:0)

  

试试这个

$returnValue = preg_match_all('/Hello this/', 'Hello this is me. Hello this is him. Hello this is her.', $matches);
echo $returnValue; // output = 3