2011-02-14 70 views
0

我想检查我的文本包含单词中的一个,可能是由像数组:PHP - 检查如果文本包含单词

$阵列=阵列(“大”,“小”,“正常“);

什么可以包含我的文本变量的示例: $ text =“美丽的大雨伞......”; $ text =“小绿TEE恤衫”;

我想设置一个可变大小; - >如果我的文本包含单词BIG,我想设置变量size ='BIG'....

非常感谢。

+0

`BIGGIE SMALLS中型红色T恤'会发生什么?或者更一般地说,在一个句子中出现多个关键词会发生什么? – 2011-02-14 10:39:27

+0

文本来自csv文件,只包含一个事件。 – Bizboss 2011-02-14 10:45:45

回答

3

最好的方法是使用正则表达式,正如bart和IVIR3zaM所说。这里是一个替换的使用:

<?php 
$text = "This is a normal text where find words"; 
$words = array('BIG','SMALL','NORMAL'); 

// It would be a nice practice to preg_quote all your array items: 
// foreach ($words as $k => $word) { 
// $words[$k] = preg_quote($word); 
// } 

$words = join("|", $words); 
$matches = array(); 
if (preg_match('/' . $words . '/i', $text, $matches)){ 
    echo "Words matched:"; 
    print_r($matches); 
} 

您可以检查在这里http://ideone.com/LwSf3P

努力记住使用/修改我要找到匹配不区分大小写。

2

不要害怕正则表达式的...尝试

if(preg_match('/\b(BIG|SMALL|NORMAL)\b/', $text, $matches)) ... 

\b是确保你确实有一个完整的词;如果你想不区分大小写的匹配,在模式中的斜杠后面加上“i”。