php字符串的截取和查找,strstr、strpos、substr三个函数的用法

本文介绍了PHP中的几个重要字符串处理函数:strstr用于查找子串并返回首次出现的位置或子串本身;strpos和它的变体stripos、strrpos、strripos分别用于查找字符串在另一个字符串中首次出现的位置,其中stripos不区分大小写;substr则用于返回字符串的一部分,支持负数索引和长度处理。此外,还提及了对中文字符串处理的mb_substr函数以及substr_replace函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、strstr

解释:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

$email   =  '1235698556@qq.com' ;
$domain  =  strstr ( $email ,  '@' );
echo  $domain ;  // 打印 @qq.com

$user  =  strstr ( $email ,  '@' ,  true );  // 从 PHP 5.3.0 起
echo  $user ;  // 打印 1235698556

2、strpos

strpos — 查找字符串在另一个字符串中首次出现的位置

mixed strops(string $haystack,$mixed $needle,[int $offset=0])

返回needlehaystack中首次出现的数字位置,从0开始查找,区分大小写。

参数:

haystack,在该字符串中进行查找。

needle,如果needle不是一个字符串,那么它将被转化为整型并被视为字符的顺序值。

offset,如果提供了此参数,搜索会从字符串该字符数的起始位置进行统计。和strrpos()、strripos()不一样,这个偏移量不能是负数。

<? php

    echo strpos("You love php, I love php too!","php");

    结果:9

?>

stripos()函数,与strpos()函数类似,不过其不区分大小写。

  • stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
  • strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
  • strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
  • <?php
    
        echo strrpos("You love php, I love php too!","php");
    
        结果 21
    ?>

没有找到要用 ===false 做判断

3、substr

substr() 函数返回字符串的一部分

substr(string,start,length)

参数:

1,string 即你要截取的字符串

2,start 即要截取的开始位置(0表示从从前往后数 第一个字符开始,负数表示从从后往前数)

  eg:start=1,表示从从前往后开始的第二个数开始截取,start=-1,表示从从后往前开始的第一(是第一不是第二哦)个数开始截取,

3,length 当为正数时,为需要截取的长度;当为负数时,即理解为去掉末尾的几个字符

  eg:length=3,表示截取三个长度;length=-2,即为去掉末尾的两个字符

<?php

$rest = substr("abcdef", 0, -1);  // 返回 "abcde"

$rest = substr("abcdef", 2, -1);  // 返回 "cde"

$rest = substr("abcdef", 4, -4);  // 返回 ""

$rest = substr("abcdef", -3, -1); // 返回 "de"


// 访问字符串中的单个字符

// 也可以使用中括号

  $string = 'abcdef';

  echo $string[0];                 // a

  echo $string[3];                 // d

  echo $string[strlen($string)-1]; // f


//中文字符串的截取和获取长度 mb_substr()

$str = '我abc是谁';  //utf-8编码的字符串

echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a

$str = '我是谁';  //gbk编码的字符串

echo mb_substr($str, 0, 1, 'gbk'); //输出 我

substr_replace($val['geval_frommembername'], '******', 2, 10);


?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值