2011-02-14 46 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」。

相關問題