PHP实现截取中文字符串不出现?号的解决方法


Posted in PHP onDecember 29, 2016

本文实例讲述了PHP实现截取中文字符串不出现?号的解决方法。分享给大家供大家参考,具体如下:

当PHP截取中英文混合字符串时,最后一个汉字经常被拆成两半,例:截取字符串的前18个字

<?php
$text = "1欢迎访问sina新浪播客";
$value = substr($text, 0, 18);
echo $value."<BR>";
?>

输出为结果为:

1欢迎访问新浪?BR>

于是写了以下这段代码,判断如果中英文混合字符串中的汉字字节数为奇数,则少截取一个字节,保证汉字显示完整。

<?php
$text = "1欢迎访问sina新浪播客";
$value = substr($text, 0, 18);
$value_length = strlen($value);
$value_count = 0;
for ($i = 0; $i < $value_length; $i++)
{
  if (ord($value{$i}) > 127)
  {
    $value_count++;
  }
}
if ($value_count % 2 != 0)
{
  $value = substr($text, 0, $value_length - 1);
}
echo $value."<BR>";
?>

输出为结果为:

1欢迎访问sina新浪

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
浅谈PHP语法(1)
Oct 09 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
PHP中的流(streams)浅析
Jul 02 PHP
PHP 微信支付类 demo
Nov 30 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP命名空间用法实例分析
Sep 04 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 #PHP
PHP实现的XML操作类【XML Library】
Dec 29 #PHP
php常用字符函数实例小结
Dec 29 #PHP
php常用正则函数实例小结
Dec 29 #PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 #PHP
php常用数组函数实例小结
Dec 29 #PHP
php正则修正符用法实例详解
Dec 29 #PHP
You might like
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
浅谈Django REST Framework限速
2017/12/12 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
python复合条件下的字典排序
2020/12/18 Python
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
软件测试英文面试题
2012/10/14 面试题
人力资源管理专业自荐书范文
2014/02/10 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
Python图片检索之以图搜图
2021/05/31 Python
详解Python常用的魔法方法
2021/06/03 Python
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
html粘性页脚的具体使用
2022/01/18 HTML / CSS