php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析_php实例

示例代码,用到了函数substr与iconv_substr,mb_substr

复制代码 代码如下:

<html>
<head><meta charset='utf-8'>
<title>截取中文字符串__www.jb51.net</title>
</head>
<body>
<?php
$str='123456欢迎大家的光临';
echo substr($str,0,4);
echo '<br>';
echo iconv_substr($str,0,4,'utf-8');
echo '<br>';
echo mb_substr($str,0,4,'utf-8');
?>
</body>
</html>

说明:
以上代码用到了二个函数iconv_substr和mb_substr,均可以在当前字符下进行字符串截取,以达到中文字符截取的不乱码。

应该如何选择呢?

1、iconv库在某些操作系统上可能运行不正确,需要安装GNU扩展库以保证它的正常运行。mb_substr函数的兼容性更好。

2、iconv函数会先将当前字符串转换为相应的编码再进行截取,而mb函数则是直接根据指定的编码进行截取(提供安全的多字节截取),所以mb函数的截取效率更高。

因此,mb_substr函数进行中文字符串的截取为最合适的选择。

时间: 2024-10-24 22:29:59

php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析_php实例的相关文章

支持中文和其他编码的php截取字符串函数分享

 这篇文章主要介绍了支持中文和其他编码的php截取字符串函数示例(截取中文字符串),需要的朋友可以参考下 简单的字符串截取方法,支持中文和其他编码,传入相对应的参数直接调用就可以了  代码如下: /**  * 字符串截取,支持中文和其他编码  * @static  * @access public  * @param string $str 需要转换的字符串  * @param string $start 开始位置  * @param string $length 截取长度  * @param

ThinkPHP的截取字符串函数无法显示省略号的解决方法_php实例

对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) { if($suffix) { if($str==mb_substr($str, $start, $le

js中截取字符串函数

网页特效中截取字符串函数 function substrdemo(){ var s, ss; // 声明变量. var s = "the rain in spain falls mainly in the plain."; ss = s.substr(12, 5); // 获取子字符串. return(ss); // 返回 "spain". } b = a.substring(start, end); start 表示起始位置,如果其实位置是第一个就填 0 end表

Go语言截取字符串函数用法_Golang

本文实例讲述了Go语言截取字符串函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: func Substr(str string, start, length int) string {     rs := []rune(str)     rl := len(rs)     end := 0             if start < 0 {         start = rl - 1 + start     }     end = start + length        

两款php 截取字符串函数

提供两款php教程 截取字符串函数,他们能自动识别中文哦,如果你是截取文章这个很不错啊,喜欢就进来看看吧. <?php header ( "content-type:text/html; charset=utf-8" ); function strcut($string, $length, $dot = '...',$charset='utf-8')         { $strlen = strlen($string); if($strlen <= $length) re

php 截取字符串函数(中文字符串)

php教程 截取字符串函数(中文字符串) 这是一款php 截取字符串函数哦,这是一款支持中文字符串哦,它可以截取html与中西文,等混合的内容,并且把html标签不算在字符截取之内,如果html标签没有闭合,程序将自动过滤多余的标签. */ function mysubstr( $str, $length ){         $tagcnt = 0;     $charcnt = 0;     $tag = '';     $maxlen = strlen( $str );     $resu

sql语句截取字符串函数

sql语句截取字符串函数 sql截取一段字符串并对该字符串进行替换的方法. 使用sql replace replace 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法 replace ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' ) 参数 ''string_replace1'' 待搜索的字符串表达式.string_replace1 可以是字符数据或二进制数据. ''string_

asp 支持中英文的截取字符串函数

<html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>asp 支持中英文的截取字符串函数</title> </head> <body> <% 'txt

比较discuz和ecshop的截取字符串函数php版_php技巧

下面先给出两个版本函数的源代码以及简单测试,最后我会给出一个实用性更强的字符串截取函数.需要注意的是:这里讨论的字符串截取问题都是针对UTF-8编码的中文字符串. discuz版本 复制代码 代码如下: /** * [discuz] 基于PHP没有安装 mb_substr 等扩展截取字符串,如果截取中文字则按2个字符计算 * @param $string 要截取的字符串 * @param $length 要截取的字符数 * @param $dot 替换截掉部分的结尾字符串 * @return 返