很多站长朋友们都不太清楚php怎么输入随机中文,今天小编就来给大家整理php怎么输入随机中文,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php函数随机文字 2、 php如何随机生成一段随机长度的文字? 3、 php如何获取随机的中文字??自动生成4个字的中文字? 4、 PHP表单输入随机文字 5、 php中怎么将一个字符串随机添加文字呢 6、 随机产生中文字符的PHP语句理解不了 php函数随机文字把你函数中的
string
函数换成
mbstring
的函数,就应该不会出乱码了。
比如
strlen
换成
mb_strlen。
具体用到什么函数不知道,所已不能作具体回答。
还有,可以用程序随机生成汉字字串:
<?php
function
getChineseChar()
{
$unidec
=
rand(hexdec('4e00'),
hexdec('9fa5'));
$unichr
=
''
.
$unidec
.
';';
$zhcnchr
=
mb_convert_encoding($unichr,
"UTF-8",
"HTML-ENTITIES");
return
$zhcnchr;
}
function
getRandStr($len)
{
$str
=
'';
for($i=0;$i<$len;$i++)
{
$str
=
$str
.
getChineseChar();
}
return
$str;
}
echo
getRandStr(4);
?>
不过,如果是用于验证,不推荐这种做法,因为随机生成的汉字大多比较生僻,很难输入。
php如何随机生成一段随机长度的文字?PHP生成随机长度的随机字符串,本质就是多次调用随机函数,例如要生成10-20个随机字符,那么首先用rand(10,20)生成随机长度,然后rang(1,26)生成每一个随机字符即可(如果需要区分大小写、允许数字需要增加一些控制),最简单的例子代码:
<?php
$n=rand(10,20);
$s='';
for ($i=1;$i<=$n;$i++)
$s.=chr(ord('a')+rand(1,26)-1);
echo $s;
?>
运行几次的例子如下:
E:\TEMP\文件\exp>a.php
nzgxatyitkej
E:\TEMP\文件\exp>a.php
jegqruuyvoyre
E:\TEMP\文件\exp>a.php
pqjdiawjmbrgvyrth
php如何获取随机的中文字??自动生成4个字的中文字?应该有个字库,可以在网上随便复制一篇文章下来,作为字库,最好把里面的标点符号空格什么的都去去掉,就是纯的汉字,然后再随机取
PHP表单输入随机文字<!--在html中加入隐藏的css属性-->
<form style="display:none;" name="form" method="post" action="">
<input type="text" name="string" value="<?=$str?>" />
</form>
php中怎么将一个字符串随机添加文字呢<?php
$strlen = 2; // 一个汉字的长度, gbk为2, utf8为3
$string = '祝伟大祖国繁荣富强'; // 文字
$insert = '-'; // 要添加的符号
$rand = mt_rand(1, strlen($string) / $strlen - 1);
$result = substr($string, 0, $rand * $strlen).$insert.substr($string, $rand * $strlen);
echo $result;
?>
随机产生中文字符的PHP语句理解不了mt_srand():为了保证随即性,所以要“播种”
注: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已自动完成。
====================================================
1.理解第二个问题,就要了解中文的编码原理;因为中文是“宽字符”所以一个字节不够存储,起码要两个字节(如果是utf-8的存储格式那有可能要3个字节)。所以就要chr($c).chr(mt_rand(161,249))两个字节;(我估计你的默认编码应该是gb2312或者是它的超集gbk-----它们用两个字节存储一个汉字)
2.这里两个字节对应的数都大于127就是说这个字节的第7位肯定是1;用来区别ascii码。而至于为什么是在(161,249)之间?因为汉字的存储是分区的(严格来讲不是的)GB2312的编码方式和古老的区位码颇有渊源。汉字的区位码每两位加上0xA0就是计算机中的GB2312码。比如“啊”区位码是1601,GB码是0xB0A1。B0 = 16 + A0,A1 = 01 + A0。
3.由于在ac-af这个”区“中gb2312是没有定义的。所以我估计你的编码是gbk或者是gb18030
4.当$c = 215 即 $c = 0xd7的时候:由于gbk在这个“区”中有几个“位”(fa-fe)是没用到的。
5.你看看gbk的编码表就什么都明白了!!
关于php怎么输入随机中文的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php怎么输入随机中文 php随机输出数组的详细内容...