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

2025-05-27 0 26

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

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

?

1

2

3

4

5
<?php

$text = "1欢迎访问sina新浪播客";

$value = substr($text, 0, 18);

echo $value."<BR>";

?>

输出为结果为:

?

1
1欢迎访问新浪?BR>

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
<?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
1欢迎访问sina新浪

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP实现截取中文字符串不出现?号的解决方法 https://www.kuaiidc.com/73598.html

相关文章

发表评论
暂无评论