当前位置: 首页 > 编程笔记 >

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

司马晋
2023-03-14
本文向大家介绍PHP实现截取中文字符串不出现?号的解决方法,包括了PHP实现截取中文字符串不出现?号的解决方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

 类似资料:
  • 本文向大家介绍PHP中实现中文字串截取无乱码的解决方法,包括了PHP中实现中文字串截取无乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 在PHP中,substr()函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文一个字节所占有的字节数不一样,而substr的长度参数是按照字节去算的,在GB2312编码时,一个中文占2个字节,英文为1个字节,而在UTF-8编码当中,一个中文可能占有

  • 本文向大家介绍C#实现中英文混合字符串截取的方法,包括了C#实现中英文混合字符串截取的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现中英文混合字符串截取的方法,是C#字符串操作中非常常用的一个方法。分享给大家供大家参考之用。具体方法如下: 具体功能代码如下: 希望本文所述方法对大家C#程序设计有所帮助。

  • 本文向大家介绍Joomla框架实现字符串截取的方法示例,包括了Joomla框架实现字符串截取的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Joomla框架实现字符串截取的方法。分享给大家供大家参考,具体如下: 在用joomla进行开发的时候,需要用到国外的资源,一些module,组件,插件之类的,但是我们会发现,在字符串这个方法都需要进行修改。因为PHP的substr方法只是针

  • 本文向大家介绍iOS实现截取字符串中汉字功能,包括了iOS实现截取字符串中汉字功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了iOS截取字符串中汉字的具体代码,供大家参考,具体内容如下 写了一个简单的例子,从第一个汉字开始截取字符串。下面贴上代码: 运行结果: 2016-03-22 22:10:23.639 HWEncodeTest[502:8824] chineseStr =

  • 本文向大家介绍PHP实现统计所有字符在字符串中出现次数的方法,包括了PHP实现统计所有字符在字符串中出现次数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现统计所有字符在字符串中出现次数的方法。分享给大家供大家参考,具体如下: 先来看看效果: 算法: 循环一次字符串(本例的$str),把出现过的字符串记录在一个数组(如本例的$strRecord)内,如果已经此记录函数已经有

  • 本文向大家介绍js 截取或者替换字符串中的数字实现方法,包括了js 截取或者替换字符串中的数字实现方法的使用技巧和注意事项,需要的朋友参考一下 在js操作表格时,我们经常会需要得到或者修改name中的下标,如:name="cust[1]/custName"; 替换:name.replace(/[\d]+/,num); //num为你需要替换成的数字变量 获取:name.match(/[\d]+/)