当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP截取中文字符串不出现?号怎么办

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-26 10:05:30 浏览: 评论:0 

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

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

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

输出为结果为:

1欢迎访问新浪?BR>

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

  1. <?php 
  2. $text="1欢迎访问sina新浪播客"
  3. $value=substr($text, 0, 18); 
  4. $value_length=strlen($value); 
  5. $value_count= 0; 
  6. for($i= 0;$i<$value_length;$i++) 
  7.   if(ord($value{$i}) > 127) 
  8.   { 
  9.     $value_count++; 
  10.   } 
  11. if($value_count% 2 != 0) 
  12.   $value=substr($text, 0,$value_length- 1); 
  13. echo$value."<BR>"
  14. ?> 

输出为结果为:

欢迎访问sina新浪

Tags:

分享到: