请选择 进入手机版 | 继续访问电脑版
开启辅助访问
帐号登录 |立即注册

PHP截取字符串函数详解

 
一、PHP substr():截取字符串
substr()函数

可以从字符串的指定位置截取一定长度的字符,这段被截取的字符可称为“子串”或者“子字符串”。
其语法格式如下:
substr($string, $start [, $length])

参数说明如下:
$string:需要截取的字符串,该字符串至少含有一个字符;
$start:截取字符串的起始位置;
如果 $start 是非负数,那么字符串将从 $string 的第 $start 个字符处开始截取,$start 从 0 开始计算。例如在字符串“abcdef”中,在 0 位置的字符是“a”,在 2 位置的字符串是 “c” 等等;
如果 $start 是负数,那么字符串将从 $string 结尾处向前数第 $start 个字符开始,$start 从 -1 开始计算。例如在字符串“abcdef”中,在 -1 位置的字符是“f”,在 -3 位置的字符是“d”等等;
如果 $string 的长度小于 $start,将返回 FALSE。
$length:可选参数,表示截取字符串的长度。
如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;
如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);
如果 $length 的值为 0,FALSE 或 NULL,那么将返回一个空字符串;
如果没有提供 $length,那么返回的子字符串将从 $start 位置开始直到字符串的结尾。

【示例】使用 substr() 函数,截取指定长度的字符串。
<?php
    $str = 'http://c.biancheng.net/php/';
    echo substr($str, 7).'<br>';
    echo substr($str, -5).'<br>';
    echo substr($str, 7, 15).'<br>';
    echo substr($str, 7, -5).'<br>';
    echo substr($str, -20, -5).'<br>';
    echo substr($str, -20, 15).'<br>';
    var_dump(substr($str, 30));
    echo '<br>';
    var_dump(substr($str, 7, 0));
?>
运行结果如下:
c.biancheng.net/php/
/php/
c.biancheng.net
c.biancheng.net
c.biancheng.net
c.biancheng.net
bool(false)
string(0) ""

二、PHP mb_substr():截取中文字符串
mb_substr() 函数可以从一个字符串中截取指定的一部分,与 substr() 函数不同的是,mb_substr() 函数不仅对英文字符有效,对中文字符同样有效,其语法格式如下:
mb_substr($str , $start [, $length = NULL [, $encoding = mb_internal_encoding()]])

参数说明如下:
$str:待截取的字符串,字符串中至少包含一个字符;
$start:截取字符串的起始位置;
如果 $start 为非负数,那么字符串会从 $str 的第 $start 个字符的位置开始截取;
如果 $start 是负数,那么字符串会从 $str 结尾处向前数第 $start 个字符的位置开始截取。
$length:可选参数,表示截取字符串的长度;
如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;
如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);
如果 $length 的值 NULL 或者省略 $length,则会截取到字符串的末尾。
$encoding:可选参数,表示 $str 的字符编码,如果省略,则使用内部字符编码。

【示例】使用 mb_substr() 函数,截取指定长度的中文字符串。
<?php
    $str = '欢迎访问C语言中文网,一个在线学习编程的网站。';
    echo mb_substr($str, 4).'<br>';
    echo mb_substr($str, -19).'<br>';
    echo mb_substr($str, 4, 6).'<br>';
    echo mb_substr($str, 4, -16).'<br>';
    echo mb_substr($str, -19, -13).'<br>';
    echo mb_substr($str, -19, 6).'<br>';
    var_dump(mb_substr($str, 40));
    echo '<br>';
    var_dump(mb_substr($str, 4, null));
?>
运行结果如下:
C语言中文网,一个在线学习编程的网站。
C语言中文网,一个在线学习编程的网站。
C语言中文网
C语言
C语言中文网
C语言中文网
string(0) ""
string(55) "C语言中文网,一个在线学习编程的网站。"

【示例】使用 mb_substr() 函数截取指定长度的字符串,超出的部分使用“...”代替。
<?php
    $str = 'C语言中文网是一个在线学习编程的网站,我们发布了多套文字教程,它们都通俗易懂,深入浅出。';
    if(strlen($str)>18){
        echo mb_substr($str, 0, 18).'...';
    }else{
        echo $str;
    }
?>
运行结果如下:
C语言中文网是一个在线学习编程的网站...

三、PHP trim():去除字符串两边的空格
在 PHP 中提供了三个函数来去除字符串左右两边的空白字符和特殊字符,如下所示:
trim() 函数:去除字符串左右两边的空白字符和特殊字符;
ltrim() 函数:去除字符串左边的空白字符和特殊字符;
rtrim() 函数:去除字符串右边的空白字符和特殊字符。

【示例】使用 trim() 函数去除字符串左右两边的空格或特殊字符。
<?php
    $str = " C语言中文网 \n";
    var_dump(trim($str));
    echo '<br>';
    $str = '@_@ http://c.biancheng.net/php/@ @_';
    var_dump(trim($str,'@ _'));
    echo '<br>';
    $str = "123PHP 教程456";
    var_dump(trim($str,'1..6'));
?>
运行结果如下:
string(16) "C语言中文网"
string(33) "http://c.biancheng.net/php/"
string(10) "PHP 教程"



回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。