字符串的截取是PHP中比较常用的一项技巧,下面介绍几个比较常用大方法。
1.substr()函数
substr()
string substr ( string $string , int $start [, int $length ] )
说明:返回字符串 string 由 start 和 length 参数指定的子字符串。
示例:
<?php
$str = 'dlfjdlfleer';
echo substr($str,0,6); //输出 dlfjdl
2.strstr()函数
strstr()
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
说明: 返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
Note:该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
Note:如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数
注意:如果字符串出现多次,以首次对为准
示例:
<?php
$str = 'kdlfjdlfleer';
echo strstr($str,'d',true); // 输出 k
示例:
<?php
$str = 'kdlfjdlfleer';
echo strstr($str,'j',true); //输出 kdlf
3.mb_substr()函数
mb_substr()
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
说明: 根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。
参数
str : 从该 string 中提取子字符串。
start : str 中要使用的第一个字符的位置。
length : str 中要使用的最大字符数。
encoding : encoding 参数为字符编码。如果省略,则使用内部字符编码。
返回值
mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
示例:
<?php
$str = '每个人心里都有一颗火种';
echo mb_substr($str, 0,4,'utf-8'); //输出 每个人心
4.mb_strcut()函数
mb_strcut()
string mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
说明: mb_strcut() 和 mb_substr() 类似,都是从一个字符串中提取子字符串,但是按字节数来执行,而不是字符个数。 如果截断位置位于多字节字符两个字节的中间,将于该字符的第一个字节开始执行。 这也是和 substr() 函数的不同之处,后者简单地将字符串在字节之间截断,这将导致一个畸形的字节序列。
参数
str : 要截断的 string。
start : 起始位置,以字节为单位。
length : 字节长度。
encoding : encoding 参数为字符编码。如果省略,则使用内部字符编码。
返回值
mb_strcut() 函数根据 start 和 length 参数返回 str 中指定的部分。
示例:
<?php
$str = '每个人心里都有一颗火种';
echo mb_strcut($str, 0,6,'utf-8'); //输出 每个
示例:
<?php
$str = '每个人心里都有一颗火种';
echo mb_strcut($str, 0,5,'utf-8'); //输出 每