<?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()
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
换了之后还是不行哦~~~~~~
#4
嘿嘿嘿,翻了翻手册才知道要转换成 uft8 的编码。哈哈。
谢谢大虾!!!
谢谢
#5
... 乱码80%都是编码的问题的
#1
把处理字符的函数换了, 加mb_前缀开头
mb_strlen() mb_substr()
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
换了之后还是不行哦~~~~~~
#4
嘿嘿嘿,翻了翻手册才知道要转换成 uft8 的编码。哈哈。
谢谢大虾!!!
谢谢
#5
... 乱码80%都是编码的问题的