问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了

发布网友 发布时间:2022-04-06 06:50

我来回答

3个回答

热心网友 时间:2022-04-06 08:19

需要从写 该函数
if($length && strlen($string) > $length) {

//截断字符

$wordscut = '';

if(strtolower($encoding) == 'utf-8') {

//utf8编码

$n = 0;

$tn = 0;

$noc = 0;

while ($n < strlen($string)) {

$t = ord($string[$n]);

if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {

$tn = 1;

$n++;

$noc++;

} elseif(194 <= $t && $t <= 223) {

$tn = 2;
$n += 2;

$noc += 2;

} elseif(224 <= $t && $t < 239) {

$tn = 3;

$n += 3;

$noc += 2;

} elseif(240 <= $t && $t <= 247) {

$tn = 4;

$n += 4;

$noc += 2;

} elseif(248 <= $t && $t <= 251) {

$tn = 5;

$n += 5;
$noc += 2;

} elseif($t == 252 || $t == 253) {

$tn = 6;

$n += 6;

$noc += 2;

} else {

$n++;

}

if ($noc >= $length) {

break;

}

}

if ($noc > $length) {

$n -= $tn;

}

$wordscut = substr($string, 0, $n);

} else {
for($i = 0; $i < $length - 1; $i++) {

if(ord($string[$i]) > 127) {

$wordscut .= $string[$i].$string[$i + 1];

$i++;

} else {

$wordscut .= $string[$i];

}

}

}

$string = $wordscut;

}

return trim($string);

}
这个函数 就不会有乱码了

热心网友 时间:2022-04-06 09:37

建议使用mb_substr和mb_strcut。具体差别可以看下资料。

另外如果实际应用的话最好在截取之前过滤一下标签(strip_tags)。否则有的时候会截断标签。

即使自定义的function的话基本上也都是用的mb_substr或者mb_strcut

热心网友 时间:2022-04-06 11:12

用chr()函数返回值检测下是不是中文的是中文并且是utf-8的话截取三个字节不是utf-8的话截取两个英文截取一个
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
关于第一次经典语录 ...三个月后打开包装发现里面零件全部损坏,请问能去超市退换 微单相机哪个品牌好 一首歌在酷狗上查找猪猪非主流歌曲club 沙拉拉就有求歌名 一首英文DJ,歌词是"刷啦啦哩,刷啦啦啦哩"还有歌词听起来好像是:"I wa... sha la la la sha la la lei 是什么歌 男孩起名字大全免费2025年 姓李的男孩起名字大全 ...九月十二(阴历)下午16点 出生 姓李 希望大师给起个好点的名字... 电脑开机提示先激活windows电脑上出现要激活WINDOWS是什么意思_百度知 ... 中国建设银行从邮政储蓄银行提钱会产生多少费用 php 汉字截取substr出现乱码 php 截取字符串 怎么最后一位数变成乱码了? 解析使用substr截取UTF-8中文字符串出现乱码的问题 phpstorm怎么修改php.ini php.ini用记事本打开全是乱码? win 2003 iis里安装PHP java时间戳多少位 服务器其中一个站点打不开php了,html等静态文件可以打开? 我做的php网站在本地可以运行,但上传在服务器上就不能访问了? php网站隔一个小时左右就无法访问,显示的错误是数据库链接错误,重启Apache就好了但是又撑不了多久 我的PHP网站也无法访问,你能帮我看看吗?很急。谢谢 phpstudy 站点设置好了 然后在网页上输入站点 就是显示网页无法访问 php网站访问不了 Window2003服务器上可以访问PHP网站,在电脑上不能访问,是怎么回事? php运行不了结果 网页拒绝访问 安装了PHP服务器,但无法访问本地网页的原因可能会有哪些呢? php简单正则匹配Img标签src内容采集? php 正则怎样匹配img标签的src内容 php获取html标签image的src内容 正则表达式 php+mysql &lt;中文&gt;替换成&lt;img src=&quot;中文.gif&quot;&gt; 对于php的错误输出,一般来说,在开发过程和生产环境中有什么不同的要求 PHP错误日志的时间与系统时间不一致 php 怎么将json 转成数组对象 你好,你之前的问题“把接受到的json转换成php数组”是怎么解决的,能说一下具体方法吗,谢谢 json 转php array问题!着急!200分! json转换php格式 请教一下,用PHP如何生成50万个不重复的8位阿拉伯数字? php生成三个数字并且任意两个不重复 yum安装php 怎么开启 sockets yum安装的php如何添加模块 PHP 如何过滤特殊字符 如◆ php 如何过滤特殊字符,如◆)- :、、!! / 等 (转)PHP如何去掉转义 php 如何过滤掉xml中的特殊字符 如何将字符串下的数转化为浮点数 C语言怎么能把字符串转化成浮点型数据? 如何将字符串转化成浮点型,且精确度为小数点后12位 如何把一个字符串转成数字,float会好多小数点 php string 转换为 decimal类型怎么做 PHP做了个下载页,但下载后,打开文件出现乱码 请问这个问题怎么解决?谢谢