php 字符串中是否包含指定字符串的多种方法 - 回这世界

编写程序的时候,经常要处理字符串,最基本就是字符串的查找,在php检测字符串中是否包含指定字符串可以使用正则,如果你对正则不了解,那么有几个函数可以为您提供方便。

1. strstr

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。

代码如下:

<?php
 /*如手册上的举例*/
 $email = 'user@example.com';
 $domain = strstr($email, '@');
 echo $domain;
 // prints @example.com
?>

2. stristr

stristr() 函数查找字符串在另一个字符串中第一次出现的位置。
如果成功,则返回字符串的其余部分(从匹配点)。如果没有找到该字符串,则返回 false。

它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.

3. strpos

strpos函数返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好.

实例1

if(strpos('www.jb51.net','jb51') !== false){
 echo '包含jb51';
}else{
 echo '不包含jb51';
}

实例2

$str= 'abc';
$needle= 'a';
$pos = strpos($str, $needle); // 返回第一次找到改字符串的位置,这里返回为1,若查不到则返回False

4. explode

用explode进行判断PHP判断字符串的包含代码如下:


function checkstr($str){
 $needle ='a';//判断是否包含a这个字符
 $tmparray = explode($needle,$str);
 if(count($tmparray)>1){
 return true;
 } else{
 return false;
 }
}

5、substr例如我们需要判断最后一个字符是不是制定字符


<?php
/*
$str1="<p>这是个winrar专用的dll然后下哦啊不错的dll文件,QlogWin32.dll</p>";
if(substr($str1,-8)==".dll</p>"){
echo substr($str1,0,-4);
}

6、substr_count统计“子字符串”在“原始字符串中出现的次数”

substr_count()函数本是一个小字符串在一个大字符串中出现的次数:

$number = substr_count(big_string, small_string);


正好今天需要一个查找字符串的函数,要实现判断字符串big_string是否包含字符串small_string,返回true或fasle;

查了半天手册没有找到现成的函数,于是想到可以用substr_count函数来实现代码如下:

function check_str($str, $substr)
{
 $nums=substr_count($str,$substr);
 if ($nums>=1)
 {
  return true;
 }
 else
 {
  return false;
 }
}

超级简单!


php在数组中判断某个值是否存在

如果想查询某个值在数组中是否存在,在PHP中我们可以使用其内置扩展函数in_array()来实现判断。这篇文章就重点介绍一下in_array()函数的作用以及它的使用方法。

PHPin_array()函数定义

in_array():函数搜索数组中是否存在指定的值,如存在返回true不存在返回false

语法:

in_array(search, array, type)

参数:

search:必需。规定要在数组搜索的值。

array:必需。规定要搜索的数组。

type:可选。如果设置该参数为true,则检查搜索的数据与数组的值的类型是否相同。

PHP判断数组中是否含有某个值

示例1:

$array = array('飞鸟慕鱼', '博客', '墨初');
if (in_array('飞鸟慕鱼', $array)) {
    echo'已存在';
} else {
    echo'不存在';
}

返回结果:已存在

示例2:

$array=array('mochu','feiniao','baidu');
if(in_array('baiduai',$array)){
echo'已存在';
}else{
echo'不存在';
}


返回结果:不存在

PHP判断数组中是否含有某个类型的值

示例1:

$array=array('23','feiniao','baidu');
if(in_array(23,$array,'true')){
echo'已存在';
}else{
echo'不存在';
}


返回结果:不存在

示例2:

$array=array('23','feiniao','baidu');
if(in_array('23',$array,'true')){
echo'已存在';
}else{
echo'不存在';
}

?>

返回结果:已存在

注意:请对比一下,上面两处示例代码的不同,如下图所指示的一样。两次示例代码返回的结果是不相同的

总结:如果type参数设置为true(如果省略,则为false),则检查搜索的数据与数组的值的类型是否相同。

PHP判断数组中是否含有某个字符串的值,并区分大小

示例代码:

$array=array('Mochu','feiniao','baidu');
if(in_array('Mochu',$array,'true')){
echo'已存在';
}else{
echo'不存在';
}

//输出结果:已存在

if(in_array("mochu",$array,'true')){
echo'已存在';
}else{
echo'不存在';
}

//输出结果:不存在



    php中内置了三种方法可将字符串转为数组:

    str_split()函数

    explode()函数

    preg_split()函数

    其中,str_split()函数是以字符长度为界来分割字符串,将子串传入数组

    而explode()和preg_split()函数都是以指定字符为界来分割字符串,将子串传入数组。

    因此使用explode()和preg_split()函数可以空格为界将字符串转为数组。

    1、使用explode()函数

    explode()函数可以基于字符串分割符拆分字符串,即它将一个字符串根据分隔符拆分为若干个子串,然后将这些子串组合成数组并返回。

    explode($delimiter,$string[,$limit])

    参数说明如下:

    $delimiter:用于分割字符串的分割字符;

    $string:需要分割的字符串;

    $limit:可选参数,可以为空,规定要返回数组元素的数目;

    如果$limit不为空且为正数,则返回的数组最多包含$limit个元素,最后的那个元素包含了$string的剩余部分;

    如果$limit不为空且为负数,则返回除了最后的$limit个元素外的所有元素;

    如果$limit为0,则会被当作1;

    如果$limit为空,则表示返回所有数组元素。

    只需将$delimiter设置为''即可。

    示例:

    <?php
    header('content-type:text/html;charset=utf-8');
    $str='hypertextlanguageprogramming';
    var_dump($str);
    $arr=explode("",$str);
    var_dump($arr);
    ?>

    php如何将字符串转为数组

    2、使用preg_split()函数

    preg_split()函数通过一个正则表达式来分割字符串。

    preg_split(string$pattern,string$subject[,int$limit=-1[,int$flags=0]])

    参数说明如下:

    $pattern:用于匹配的模式,也即正则表达式。

    $subject 要分割的字符串。

    $limit:可选参数,如果指定,就将限制分隔得到的子串最多只有limit个,并且最后一个子串将包含所有剩余部分。limit值为-1、0或NULL时都代表“不限制”,建议使用NULL。

    $flags:可选参数,它有3个取值。

    注意:这将会改变返回数组中的每一个元素,使每个元素成为一个由第0个元素为分隔后的子串、第1个元素为该子串在subject中的偏移量组成的数组。

    若设置为PREG_SPLIT_NO_EMPTY,则preg_split()将返回分隔后的非空部分。

    若设置为PREG_SPLIT_DELIM_CAPTURE,则分隔的模式中的括号表达式将被捕获并返回。

    若设置为PREG_SPLIT_OFFSET_CAPTURE,则对于每一个出现的匹配返回时会附加字符串偏移量。

    返回值:返回一个使用$pattern分割subject字符串后得到的子串组成的数组。

    只需将$pattern设置为//即可。

    示例:

    <?php
    header('content-type:text/html;charset=utf-8');
    $str='1234,56-78=9';
    var_dump($str);
    $arr=preg_split('//',$str,-1,PREG_SPLIT_OFFSET_CAPTURE);
    var_dump($arr);
    ?>

点赞(0) 打赏

书签

技术

知识

立即下载

视频

导图

配色

教程

代码

素材

评论列表 0

暂无评论

发表评论 取消回复

分享
链接
快捷
记账
快捷
运动
热门
书签
菜单
显示
返回
顶部