php中怎么截取字符串中的一部分?

原创 PHP笔记  2017-04-24 21:46  阅读 725 views 次

php中提供了截取字符串的函数substr(),substr()的作用就是截取指定字符串中指定长度的字符串。substr()函数用法也非常简单,有三个参数,第一个参数是指定的字符串对象;第二个参数为截取字符串的位置;第三个参数是可选参数,指定截取字符串的个数(长度)。

实例:

<?php
$str="abcd12345e";
echo 'substr($str,4):'.substr($str,4).'</br>';
echo 'substr($str,4,5):'.substr($str,4,5).'</br>';
echo 'substr($str,-2):'.substr($str,-2).'</br>';
echo 'substr($str,2,-3):'.substr($str,2,-3);
?>

运行结果:

 

说明:

  1. 指定的位置是从0开始的,如果要从第3个字符开始截取,指定的位置应该为2;
  2. 指定的位置可以是负数,如果是负数,找截取的位置时是从字符串末尾开始数,比如:指定的位置参数为-5,即从倒数第5个字符开始截取;
  3. 截取字符的个数是可选的,如果没有设置,则截取从指定位置截取所有;
  4. 截取字符的个数如果为负数,即截取到倒数第n个字符。比如截取字符的个数为-3,即截取到倒数第3个字符(意思是:截取指定位置和最后三个字符之间的字符,包含指定位置的字符)。

注意:substr()函数在截取中文字符时,如果截取的长度不是汉字占字节数的倍数,会导致截取的中文字符乱码。因为一个中文在UTF-8编码下,每个汉字占3字节,而GB2312编码下占2字节,而指定截取的个数是按字节计算的。为了避免出现乱码,建议在截取中文字符时写截取的个数时写成:中文字个数*中文字占字节数。或利用substr()函数编写一个截取中文字符的自定义函数。(开始截取的位置也是同样的道理)

实例:

<?php
$str="截取中文字";
echo substr($str,2*3,3*3);//UTF-8编码
//或echo substr($str,2*2,3*2);//GB2312编码
?>

输出结果:中文字

本文地址:https://www.ggbiji.com/php-intercept-character.html
版权声明:本文为 PHP笔记 原创/整理文章,欢迎分享,转载请注明出处!

发表评论


表情