我想检查我的文字是否包含一个单词,可能来自如下数组:
$ array = array('BIG','SMALL','NORMAL');
可以包含我的文本变量的示例: $ text =“美丽的大UMBRELLA ......”; $ text =“SMALL GREEN TEE-SHIRT”;
我想设置一个可变大小; - >如果我的文字包含单词BIG,我想设置变量size ='BIG'....
非常感谢。
答案 0 :(得分: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
请记住使用/ i修饰符查找不区分大小写的匹配项。
答案 1 :(得分:2)
不要害怕正则表达式......试试
if(preg_match('/\b(BIG|SMALL|NORMAL)\b/', $text, $matches)) ...
\b
是为了确保你确实有一个完整的词;如果你想要不区分大小写的匹配,请在模式中的斜杠后添加“i”。
答案 2 :(得分:1)
使用strpos测试一个单词:
if(strpos($text, $word) !== false) { /* $text contains $word */ }