Devel模块中带的Devel generate虽可以生成示例内容,但其只能批量生成英文的。 做以下改动,可以使之批量生成中文内容。(devel7.x 1.2)
第一步:要把devel下的devel_generate文件夹中devel_generate.inc文件转为utf-8编码格式。
第二步:devel_generate.inc文件中,改两个函数。
devel_create_content($type = NULL) //这个函数自动生成内容。
function devel_create_greeking($word_count, $title = FALSE) //这个函数创建标题。
把这两个函数里的内容全删掉,都改为以下方式,即可。
1 | $length=mt_rand(3,40);//设置文字数目。可设置随机数,如标题设置1-40个字,内容设置1-3000字。 |
2 | $word= '示例';//如果想有"示例"前缀,可以$word='示例'; |
3 | $vowels = array("标", "题", "字", "段", "节","点", "区", "块","分", "类","数", "据", "库", ",","。", "练","函", "表","格", "链","接", "用","什", "注","架", "结","果" );//以设定的这些文字组句子,文字可自加选择加,可加标点,要注意个数,一般设置使:约40个字中有三个标点。 |
4 | $num_vowels = count($vowels); |
5 | while(strlen($word)/3 < $length){ //在utf-8中,一个汉字占3字节。 |
6 | $word .= $vowels[mt_rand(0, $num_vowels - 1)]; |
附加几点:
1、strlen()函数计算字符串长度时,在utf8编码下,一个汉字是3个字符。所以这里要设置多少字时记得除以3。或改为strlen($word)/3
2、如果要加很多的字,可从《千字文》中选字。千字文是许多汉字没有重复的一个常见字集合,可百度一下《千字文》加以了解。这样选字时,可以方便的选取字而不会出现重复。
来自
http://blog.sina.com.cn/s/blog_4636489701013bdl.html