• 技术文章 >php教程 >php手册

    php strstr、stristr、strpos函数比较

    2016-06-13 10:14:48原创686
    在字符查找时在php中为我们提供了三个函数 strstr、stristr、strpos,它们三个的用法有点区别下面我们来一下介绍相关函数。

    语法:
    string strstr ( string haystack, string needle)
    返回haystack中从needle开始到结束的字符串.
    如果没有返回值,即没有发现needle,则返回FALSE

    注: 这个函数是大小写敏感的。

    实例1

    代码如下 复制代码

    $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.'
    ';
    echo $city_ch_arr_item;
    $s_city=$city_ch_arr_item;
    }
    }
    }//如果找不到市 那么看看是不是能找到省 有时会有这样的情况:广东省长城宽带 这样的一律归属到该省省府
    elseif(strstr($area_ga,"河北")!==false){
    $s_city="石家庄";
    }

    city.dat中是一些城市 格式是这样的
    广州|深圳|汕头|惠州

    更多详细内容请查看:http://www.bKjia.c0m/phper/18/8304359e6918876b45d02c200bc8f193.htm

    stristr() 函数查找字符串在另一个字符串中第一次出现的位置。

    如果成功,则返回字符串的其余部分(从匹配点)。如果没有找到该字符串,则返回 false。

    代码如下 复制代码

    echo stristr("Hello world!","WORLD");
    ?>
    输出:

    world!

    strpos介绍

    相对于前两者查找成功后返回的是字符,strpos查找成功后则是返回的是位置。因为位置有可能是0,所以判断查找失败使用===false更合适。

    strpos的性能比较好,如果只是判断needle是否在字符串haystack中,则使用strpos较好,它将占用更少的内存和获得更快的执行速度。但是strpos对特殊字符支持不好,比如对中文就不能很好支持


    例子

    代码如下 复制代码

    echo strpos("Hello world!","wo");
    ?>

    输出:

    6

    注释:该函数对大小写敏感。如需进行对大小写不敏感的搜索,请使用 stripos() 函数。


    结合上面实例我们得出结论

    strstr 区别大小写,从字符开始找如果有返回true否则就返回false
    stristr 字符不区别大小写,从字符开始找如果有返回true否则就返回false
    strpos 区别大小写strpos查找成功后则是返回的是位置。因为位置有可能是0,所以判断查找失败使用===false更合适。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php数字类型之字符串类型详解 下一篇:php中删除字符首尾空格的方法
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 投票管理程序_php基础• Symfony2框架学习笔记之HTTP Cache用法详解,symfony2学习笔记• php实现爬取和分析知乎用户数据,php• php数组合并与拆分实例分析,数组拆分实例分析• PHP数组和explode函数示例总结,数组explode
    1/1

    PHP中文网