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