PHP随机插入中文字符乱码!!!【SOS】

时间:2022-12-01 06:34:16

<?php
$str = "第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。";
$ad[1] = '<font color=red>哈</font>';
$ad[2] = '<font color=red>嘿</font>';
$ad[3] = '<font color=red>呼</font>';
$textlength = strlen($str);
$curpos = ($textlength >= 100) ? rand(30, 100) : ($textlength > 30 ? rand(30, $textlength) :$textlength);
$curadid = 1;
while($curpos < $textlength){
 $str = substr($str, 0, $curpos).$ad[$curadid].substr($str, $curpos, $textlength);
 $curpos += rand(20, 50) + strlen($ad[$curadid]);
 if($ad[$curadid + 1]) $curadid += 1;
}
echo $str;
?>



各位路过的大虾们,小弟这段代码功能有所欠缺。望给与解决!

问题:因为中文字节问题,总是回显乱码!

5 个解决方案

#1


把处理字符的函数换了, 加mb_前缀开头

mb_strlen() mb_substr()

#2


<?php
$str = "第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。";
$ad[1] = '<font color=red>哈</font>';
$ad[2] = '<font color=red>嘿</font>';
$ad[3] = '<font color=red>呼</font>';
$textlength = mb_strlen($str);
$curpos = ($textlength >= 100) ? rand(30, 100) : ($textlength > 30 ? rand(30, $textlength) :$textlength);
$curadid = 1;
while($curpos < $textlength){
 $str = mb_substr($str, 0, $curpos).$ad[$curadid].mb_substr($str, $curpos, $textlength);
 $curpos += rand(20, 50) + mb_strlen($ad[$curadid]);
 if($ad[$curadid + 1]) $curadid += 1;
}
echo $str;
?>

#3


引用 2 楼 coolesting 的回复:
PHP code<?php$str="第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。"?-


换了之后还是不行哦~~~~~~

#4


引用 3 楼 cnlongxi 的回复:
引用 2 楼 coolesting 的回复:
PHP code <?php$str="第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。"?-


换了之后还是不行哦~~~~~~


嘿嘿嘿,翻了翻手册才知道要转换成 uft8 的编码。哈哈。

谢谢大虾!!!


谢谢

#5


...  乱码80%都是编码的问题的

#1


把处理字符的函数换了, 加mb_前缀开头

mb_strlen() mb_substr()

#2


<?php
$str = "第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。";
$ad[1] = '<font color=red>哈</font>';
$ad[2] = '<font color=red>嘿</font>';
$ad[3] = '<font color=red>呼</font>';
$textlength = mb_strlen($str);
$curpos = ($textlength >= 100) ? rand(30, 100) : ($textlength > 30 ? rand(30, $textlength) :$textlength);
$curadid = 1;
while($curpos < $textlength){
 $str = mb_substr($str, 0, $curpos).$ad[$curadid].mb_substr($str, $curpos, $textlength);
 $curpos += rand(20, 50) + mb_strlen($ad[$curadid]);
 if($ad[$curadid + 1]) $curadid += 1;
}
echo $str;
?>

#3


引用 2 楼 coolesting 的回复:
PHP code<?php$str="第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。"?-


换了之后还是不行哦~~~~~~

#4


引用 3 楼 cnlongxi 的回复:
引用 2 楼 coolesting 的回复:
PHP code <?php$str="第三,时尚理念日渐深入中国,在媒体对时尚潮流的推崇以及*的支持下,中国民众的消费观念也逐渐革新,品牌意识加强,比如上海女装代理恒隆广场的LouisVuitton店里,90%消费者是中国人。因此,如果中国能诞生一批达到国际水准的奢侈品牌,必定不乏追崇者。但是奢侈品牌的创立需要一段时间的培养和认知,例如,日本的经济和商业都非常发达,又是全球第一大奢侈品消费国。"?-


换了之后还是不行哦~~~~~~


嘿嘿嘿,翻了翻手册才知道要转换成 uft8 的编码。哈哈。

谢谢大虾!!!


谢谢

#5


...  乱码80%都是编码的问题的