PHP-从文本列表中提取单词

PHP-从文本列表中提取单词,php,Php,我有一个白名单上的单词:厨房椅桌 给定一个文本,我想知道其中哪些是白名单上的单词 实现这一目标的好方法是什么?我的意思是,易于理解,性能良好?您可以使用php函数用空格分解单词列表。然后它将返回一个数组。同样的事情也会发生在输入文本上。这样,您将有两个数组 //list of words $myArray = array('kitchen', 'chair', 'table'); foreach($myArray as $word){ if(stristr($textBody, $wo

我有一个白名单上的单词:
厨房椅桌

给定一个文本,我想知道其中哪些是白名单上的单词


实现这一目标的好方法是什么?我的意思是,易于理解,性能良好?

您可以使用php函数用空格分解单词列表。然后它将返回一个数组。同样的事情也会发生在输入文本上。这样,您将有两个数组

//list of words
$myArray = array('kitchen', 'chair', 'table');

foreach($myArray as $word){
    if(stristr($textBody, $word) !== false){
    // word's in there
    }
}
之后,您可以使用函数,该函数将返回两个数组中的公共字

$array = explode(' ',$wordlist);
$result = array_intersect($array, $inputarray);

$result将包含所有常用词。

这不是一个非常清楚的问题,但类似的问题可能适合您:

$str = "kitchen chair table";
$search = "kitchen bathroom chair";
$arr1 = explode(' ', $str);
$arr2 = explode(' ', $search);
print_r(array_intersect($arr1, $arr2));
输出:

Array
(
    [0] => kitchen
    [1] => chair
)

您需要知道这些单词在字符串中的频率或确切位置吗? 如果没有,我建议您将列表转换为带有“explode(“”,$list)”的数组。 然后遍历该数组并使用strpos进行搜索

如果需要,我可以提供示例代码:)


如果需要位置和所有引用,则必须使用正则表达式。

要实现这一点,应使用带单词边界的正则表达式。如果你不这样做,并且仅仅依靠字符串的位置,像“heat”这样的单词将在像“cheat”这样的单词中匹配

这将产生:

kitchen is in the text 
table is in the text 

请注意,如果
$text
中只有
,这将与
表不匹配。

您是在查找特定的单词还是仅查找单词?
array\u unique(explode(“,$words))
将为您提供一个包含所有不同单词的数组words@MrD:具体的词-我已经有一个白名单了compiled@Truth:对不起,我不明白你的评论。@dan:看来至少有7个人理解我的评论,并同意它。“我想知道这些单词中的哪一个是PHP”这些单词是什么?你想用它们做什么?你想达到什么目标?你试过什么??$textBody将是“任意文本”部分
kitchen is in the text 
table is in the text