php函数随机文字

用php函数制造出随机的数字,字母..这个我会我用同样的方式将中文放进去..显示出来的随机文字是乱码..请问如何实现这一功能?..二楼的..试过了..可是..貌似..无法... 用php函数制造出随机的数字,字母 ..这个我会
我用同样的方式将中文放进去..显示出来的随机文字是乱码..
请问如何实现这一功能?..
二楼的.. 试过了..可是.. 貌似..无法显示 0.0!
展开
 我来答
禚梓维廖倩
2020-05-17 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:849万
展开全部
把你函数中的
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);
?>
不过,如果是用于验证,不推荐这种做法,因为随机生成的汉字大多比较生僻,很难输入。
binjly
2010-02-12 · TA获得超过3064个赞
知道大有可为答主
回答量:2017
采纳率:0%
帮助的人:2716万
展开全部
请提供下代码片段
另外,注意下是不是编码问题。例如:你的脚本是用UTF-8保存的,但是页面是用GB2312来显示

是我搞错了,这个不能用索引了,修改下:
你的程序是用什么编码方式呢?UTF-8还是GB2312?
UTF-8是占三字节的,GB2312是占两字节的。
所以你的代码要改一下,我以UTF-8为例:
function code_keys($length){
$pattern = '补充提问细节,以得到更准确的答案';
for($i=0;$i<$length;$i++) {
$key .= substr($pattern,mt_rand(0,8)*3,3);//要以三字节为单位处理

}
return $key;
}

那就是你的编码问题了,我这个是UTF-8的,已经测试通过。
你可以试试把3改成2。
至于如何查看是什么编码,楼主可以用记事本打开你的脚本,然后“另存为”,在下面就可以看到编码方式了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a435633
2010-02-12 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
把你函数中的 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);
?>

不过,如果是用于验证,不推荐这种做法,因为随机生成的汉字大多比较生僻,很难输入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
镇歆赫连致萱
2020-07-18 · TA获得超过5566个赞
知道大有可为答主
回答量:3007
采纳率:31%
帮助的人:483万
展开全部
请提供下代码片段
另外,注意下是不是编码问题。例如:你的脚本是用UTF-8保存的,但是页面是用GB2312来显示
是我搞错了,这个不能用索引了,修改下:
你的程序是用什么编码方式呢?UTF-8还是GB2312?
UTF-8是占三字节的,GB2312是占两字节的。
所以你的代码要改一下,我以UTF-8为例:
function
code_keys($length){
$pattern
=
'补充提问细节,以得到更准确的答案';
for($i=0;$i<$length;$i++)
{
$key
.=
substr($pattern,mt_rand(0,8)*3,3);//要以三字节为单位处理
}
return
$key;
}
那就是你的编码问题了,我这个是UTF-8的,已经测试通过。
你可以试试把3改成2。
至于如何查看是什么编码,楼主可以用记事本打开你的脚本,然后“另存为”,在下面就可以看到编码方式了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rj...t@163.com
2010-02-12 · TA获得超过102个赞
知道答主
回答量:166
采纳率:0%
帮助的人:87.8万
展开全部
这个其实和数字字母也都是一样的哈~~
就是要注意gb2312编码里面不要超限就行了哈~~还有就是编码规则稍微注意下就好了~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式