教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php strstr、stristr、strpos函数比较

php strstr、stristr、strpos函数比较

发布时间:2016-10-26   编辑:jiaochengji.com
教程集为您提供php strstr、stristr、strpos函数比较等资源,欢迎您收藏本站,我们将为您提供最新的php strstr、stristr、strpos函数比较资源
在字符查找时在php中为我们提供了三个函数 strstr、stristr、strpos,它们三个的用法有点区别下面我们来一下介绍相关函数。

语法:
string strstr ( string haystack, string needle)
返回haystack中从needle开始到结束的字符串.
如果没有返回值,即没有发现needle,则返回FALSE
 
注: 这个函数是大小写敏感的。

实例1

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy3018')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy3018>

$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.jiaochengji.com/phper/18/8304359e6918876b45d02c200bc8f193.htm

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

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

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9325')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9325>

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

world!

 

strpos介绍

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

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


例子

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4445')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4445>

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

输出:

6

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


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

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

您可能感兴趣的文章:
php strstr、stristr、strpos函数比较
php strstr查找字符串中是否包含某些字符
php判断是否包含字符
php判断字符与字符串的包含方法属性
查找字符串中是否包含某些字符的函数strstr及其它
php判断字符串是否含有指定字符串
php检测字符串是否包含字符串
php字符串比较与查找方法详解
php 查找字符串常用函数说明
php中用于查找字符串的常用函数

[关闭]
~ ~