PHP随机生成N个汉字的实现方法(含代码)
2014-11-11 16:18
776 查看
博客搬家至
油皮8
在我们的一个APP项目中,有一个答题应用---摆字题,形式如下图示
根据需求,我们在系统后台设置好答案,然后让系统自动生成18个汉字,在这18个汉字中包含设置好的答案。
最终效果
油皮8
一、需求说明
在我们的一个APP项目中,有一个答题应用---摆字题,形式如下图示根据需求,我们在系统后台设置好答案,然后让系统自动生成18个汉字,在这18个汉字中包含设置好的答案。
二、我的代码实现片段
/** * 随机生成N个汉字 * @param string $giveStr 必须含有的字 * @param int $num 需要生成多少个汉字 * @return string 返回生成的字符串 */ private function getRndWords( $giveStr="", $num=18 ){ $str = "北京澜声科技有限公司的主要产品是听见啦金玉良缘冰清玉洁继往开来锦绣山河冰雪聪明功成名就桃花潭水深千尺不及汪伦送我情先帝创业未半而中道今天下三分益州疲弊此诚危急存亡之秋也然侍卫之臣不懈于内忠志之士忘身于外者盖追先帝之殊遇欲报之于陛下也诚宜开张圣听";# 字库 $newStr = ""; # 随机生成的包含答案的字符串 $anLo = array(); # 设定的答案所在的位置。 $bit = 3; # 位数,在本系统中是utf-8编码,一个中文长度为3 $anLenth = floor(strlen($giveStr)/$bit); # 答案长度,在UTF编码中, # 这些汉字在18个汉字中的位置 $i = 0; while ( $i<$anLenth ) { $rd = rand( 0, $num-1 ); if(in_array($rd,$anLo)) continue; # 保证了不重复。 $anLo[] = $rd; $i++; } for( $j=0; $j<$num;$j++ ){ if(in_array($j,$anLo)){ $k = array_search($j,$anLo); $newStr .= mb_substr($giveStr,$k*$bit,$bit); #echo $newStr."<br>"; } else { $rd = rand(0,(strlen($str)-1)/$bit); $wd = mb_substr($str,$rd*$bit,$bit); $str = str_replace($wd, '', $str); $newStr .= $wd; } } return $newStr; }
最终效果
相关文章推荐
- php随机生成汉字实现方法
- PHP生成随机用户名和密码的实现代码
- 【代码实现】PHP生成各种随机验证码
- PHP中实现随机密码生成的两种方法
- 【代码实现】PHP生成各种随机验证码
- Java代码实现随机生成汉字
- PHP生成随机用户名和密码的实现代码
- PHP生成指定随机字符串的简单实现方法
- php生成SessionID和图片校验码的思路和实现代码
- php 随机生成10位字符代码
- Opengl 反走样文字实现方法(汉字) :快速将DC环境下的中英文字转到OpenGL下反走样显示(共享我的代码)
- php生成随机密码的几种方法
- PHP定时自动生成静态HTML的实现代码
- php生成随机密码的三种方法小结
- PHP生成随机字符串的方法
- PHP生成Flash动画的实现代码
- php 中生成随机字符串的方法
- PHP定时自动生成静态HTML的实现代码
- PHP实现定时生成HTML网站首页实例代码
- PHP 一个随机字符串生成代码