• 技术文章 >后端开发 >PHP问题

    php字符串截取的方法有哪些

    青灯夜游青灯夜游2021-06-03 18:11:01原创95

    方法:1、用“substr(字符串,开始位置,截取长度)”语句;2、用“mb_substr(字符串,开始位置,截取长度,编码)”语句;3、用“mb_strcut(字符串,开始位置,截取长度,编码)”语句;4、用“$str[字符位置]”语句。

    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

    substr(字符串,开始位置,截取长度)

    如果截取的字符串是多个字节,就会出现乱码,比如中文,适用于截取字母和数字

    $str = 'hello';
    echo substr($str,1,2);//输出el

    mb_substr(字符串,开始位置,截取长度,字符编码)

    适用于截取中文,按字来切分

    echo mb_substr('这个真的很nice',0,3,'utf-8'); //输出这个真

    mb_strcut(字符串,开始位置,截取长度,字符编码)

    按照字节来切分

    echo mb_strcut('这个真的很nice',0,3,'utf-8'); //输出这

    $str[0]

    将字符串看做字符集合,中文不适用哦!

    $str = 'hello';
    echo $str[0];//输出h

    有时字符串中含有中英文数字等,所以自定义一个不区分中英文的函数来切分字符串

    /**
    * 
    * 中英混合的字符串截取
    * @param 待截取字符串 $sourcestr
    * @param 截取长度 $cutlength
    */
    function sub_str($sourcestr, $cutlength) {
    	$returnstr = '';//待返回字符串
    	$i = 0;
    	$n = 0;
    	$str_length = strlen ( $sourcestr ); //字符串的字节数 
    	while ( ($n < $cutlength) and ($i <= $str_length) ) {
    		$temp_str = substr ( $sourcestr, $i, 1 );
    		$ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码 
    		if ($ascnum >= 224) {//如果ASCII位高与224,
    			$returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符  
    			$i = $i + 3; //实际Byte计为3
    			$n ++; //字串长度计1
    		} elseif ($ascnum >= 192){ //如果ASCII位高与192,
    			$returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符 
    			$i = $i + 2; //实际Byte计为2
    			$n ++; //字串长度计1
    		} elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大写字母,
    			$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
    			$i = $i + 1; //实际的Byte数仍计1个
    			$n ++; //但考虑整体美观,大写字母计成一个高位字符
    		}elseif ($ascnum >= 97 && $ascnum <= 122) {
    			$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
    			$i = $i + 1; //实际的Byte数仍计1个
    			$n ++; //但考虑整体美观,大写字母计成一个高位字符
    		} else {//其他情况下,半角标点符号,
    			$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
    			$i = $i + 1; 
    			$n = $n + 0.5; 
    		}
    	}
    	return $returnstr;
    }

    推荐学习:《PHP视频教程

    以上就是php字符串截取的方法有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 字符串截取
    上一篇:PHP中全局变量如何定义?如何声明?其作用是什么?(总结) 下一篇:php 5.6和7.0的区别是什么
    第16期线上培训班

    相关文章推荐

    • php中Thread Safe和None Thread Safe的区别是什么• php代码中怎么屏蔽php错误• php怎么修改上传文件的大小限制• php正则替换函数有哪些• PHP中你必须完全掌握的两种参数(附实例)精选• PHP中全局变量如何定义?如何声明?其作用是什么?(总结)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网