我想檢查我的文本包含單詞中的一個,可能是由像數組:PHP - 檢查如果文本包含單詞
$陣列=陣列(「大」,「小」,「正常「);
什麼可以包含我的文本變量的示例: $ text =「美麗的大雨傘......」; $ text =「小綠TEE恤衫」;
我想設置一個可變大小; - >如果我的文本包含單詞BIG,我想設置變量size ='BIG'....
非常感謝。
我想檢查我的文本包含單詞中的一個,可能是由像數組:PHP - 檢查如果文本包含單詞
$陣列=陣列(「大」,「小」,「正常「);
什麼可以包含我的文本變量的示例: $ text =「美麗的大雨傘......」; $ text =「小綠TEE恤衫」;
我想設置一個可變大小; - >如果我的文本包含單詞BIG,我想設置變量size ='BIG'....
非常感謝。
最好的方法是使用正則表達式,正如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
努力記住使用/修改我要找到匹配不區分大小寫。
使用strpos來測試一個字:
if(strpos($text, $word) !== false) { /* $text contains $word */ }
不要害怕正則表達式的...嘗試
if(preg_match('/\b(BIG|SMALL|NORMAL)\b/', $text, $matches)) ...
的\b
是確保你確實有一個完整的詞;如果你想不區分大小寫的匹配,在模式中的斜槓後面加上「i」。
`BIGGIE SMALLS中型紅色T恤'會發生什麼?或者更一般地說,在一個句子中出現多個關鍵詞會發生什麼? – 2011-02-14 10:39:27
文本來自csv文件,只包含一個事件。 – Bizboss 2011-02-14 10:45:45