我想检查我的文本包含单词中的一个,可能是由像数组: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