php字符串查找
我想用PHP在一个串里查找一些敏感的单词,现在敏感的单词是一个大的数组,请问PHP里有直接使用这个数组当做参数来查找字符串的函数吗,并且效率较高的比如$str=“qwdk...
我想用PHP在一个串里查找一些敏感的单词,现在敏感的单词是一个大的数组,请问PHP里有直接使用这个数组当做参数来查找字符串的函数吗,并且效率较高的
比如
$str=“qwdkjlkjasdioqwelkjwe”;
$a = array('aa','bb','cc','dd');
要在$str里查找$a里的单词,有直接能用的函数吗? 展开
比如
$str=“qwdkjlkjasdioqwelkjwe”;
$a = array('aa','bb','cc','dd');
要在$str里查找$a里的单词,有直接能用的函数吗? 展开
4个回答
展开全部
PHP字符串查找的函数的函数比较多,这里演示下常用几种使用方法:
<?php
//1.strstr()函数:用于获取一个指定字符串在另一个字符串中首次出现的位置开始,直到结束的子字符串,
//如果执行成功,则返回剩余字符串;否则返回false。
echo strstr("zhidao.baidu.com","baidu");
//baidu.com
//2. strpos()函数:返回字符串在另一个字符串中第一次出现的位置。如果没有找到字符串,则返回false。
$str = 'hello,iambaiduzhidao!';
$find = 'zhidao';
if(strpos($str,$find)!==false){
echo '字符串包含:zhidao!';
}else{
echo '字符串不包含:zhidao!';
}
//输出结果:字符串包含:zhidao!
//返回字符串zhidao在str中第一次出现的位置
echo strpos($str,$find);
//14
?>
展开全部
一般替换就是用str_replace啊,直接就可以用数组的。比如:
$str=“qwdkjlkjasdioqwelkjwe”;
$a = array('aa','bb','cc','dd');
$b = array('**', '**','**','**');
$str = str_replace($a, $b, $str);
$str=“qwdkjlkjasdioqwelkjwe”;
$a = array('aa','bb','cc','dd');
$b = array('**', '**','**','**');
$str = str_replace($a, $b, $str);
追问
那个效率太低了,我的参数数组比较大,而且效率要求较高。。
追答
一般我替换敏感词都是用这个的,已经是效率最高的了。
你可以测试下执行时间。
比你foreach的遍历数组要快的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
in_array($str,$a);
追问
是在str里查找$a,不是$a中查找$str
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
$str=“qwdkjlkjasdioqwelkjwe”;
$a = array('aa','bb','cc','dd');
foreach($a as $findme){
$pos = strpos($str, $findme);
if ($pos === false) {
echo "The string '$findme' was not found in the string '$str'";
} else {
echo "The string '$findme' was found in the string '$str'";
echo " and exists at position $pos";
}
}
?>
$str=“qwdkjlkjasdioqwelkjwe”;
$a = array('aa','bb','cc','dd');
foreach($a as $findme){
$pos = strpos($str, $findme);
if ($pos === false) {
echo "The string '$findme' was not found in the string '$str'";
} else {
echo "The string '$findme' was found in the string '$str'";
echo " and exists at position $pos";
}
}
?>
追问
我一开始是这么弄得,后来改成用正则了,把关键字拼成一个正则串,是用preg_match匹配的,这样效率比foreach高很多,不过谢谢你啦~还有谢谢2楼德朋友
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询