php strstr、stristr、strpos函数比较
在字符查找时在php中为我们提供了三个函数 strstr、stristr、strpos,它们三个的用法有点区别下面我们来一下介绍相关函数.
语法:
string strstr ( string haystack, string needle)
返回haystack中从needle开始到结束的字符串.
如果没有返回值,即没有发现needle,则返回FALSE
注: 这个函数是大小写敏感的.
实例代码如下:
<?php
$city_str = fopen(cgi_path . "/data/weather/city.dat", "r");
$city_ch = fread($city_str, filesize(cgi_path . "/data/weather/city.dat"));
$city_ch_arr = explode("|", $city_ch);
//如果能匹配到所在市
if (strstr($area_ga, "市")) {
foreach ($city_ch_arr as $city_ch_arr_item) {
if (@strstr($area_ga, $city_ch_arr_item)) {
echo $area_ga . '<br>';
echo $city_ch_arr_item;
$s_city = $city_ch_arr_item;
}
}
} //如果找不到市 那么看看是不是能找到省 有时会有这样的情况:广东省长城宽带 这样的一律归属到该省省府
elseif (strstr($area_ga, "河北") !== false) {
$s_city = "石家庄";
}
?>city.dat中是一些城市 格式是这样的
广州|深圳|汕头|惠州
更多详细内容请查看:http://www.phprm.com
stristr() 函数查找字符串在另一个字符串中第一次出现的位置.
如果成功,则返回字符串的其余部分(从匹配点).如果没有找到该字符串,则返回 false.
实例代码如下:
<?php
echo stristr("Hello world!", "WORLD");
?>输出:
world!
strpos介绍
相对于前两者查找成功后返回的是字符,strpos查找成功后则是返回的是位置.因为位置有可能是0,所以判断查找失败使用===false更合适.
strpos的性能比较好,如果只是判断needle是否在字符串haystack中,则使用strpos较好,它将占用更少的内存和获得更快的执行速度.但是strpos对特殊字符支持不好,比如对中文就不能很好支持
实例代码如下:
<?php
echo strpos("Hello world!", "wo");
?>输出:
6
注释:该函数对大小写敏感.如需进行对大小写不敏感的搜索,请使用 stripos() 函数.
结合上面实例我们得出结论
strstr 区别大小写,从字符开始找如果有返回true否则就返回false
stristr 字符不区别大小写,从字符开始找如果有返回true否则就返回false
strpos 区别大小写strpos查找成功后则是返回的是位置.因为位置有可能是0,所以判断查找失败使用===false更合适.
文章网址:http://www.phprm.com/develop/fs2502.html
随意转载^^但请附上教程地址。