生成随机汉字字符串 (UTF8)
<?php$outputstr = getRandNumChineseString();echo $outputstr;function getChineseCharacter(){$unidec = rand(19968, 40869);$unichr = '&#' . $unidec . ';';$zhcnchr = mb_convert_encoding($unichr, "UTF-8", "HTML-ENTITIES");return $zhcnchr;}function getRandNumChineseString(){$num = rand(1,16);$str = null;for($i=0;$i<$num;$i++){$str = $str . getChineseCharacter();}return $str;}?>
PHP 需要开启 mbstring 支持
附: 汉字Unicode编码表
Tags: php, 字符串, 汉字
汉字截取的方法
原来有人提出了一个方法:
$len = 19;$text = "here is the text!";echo strlen($text)< =$len ? $text : (substr($text,0,$len).chr(0)."....");
在 SaBlog 的程序里发现了另一种方法:
function csubstr ($text, $limit) { $s = '; for($i=0;$i< $limit-3;$i++) { $s .= ord($text[$i])>127 ? $text[$i].$text[++$i] : $text[$i]; } return $s;}
以上仅适用于 gb2312 编码,如果是UTF-8 的话需要把第4行改为
$s .= ord($text[$i])>127 ? $text[$i].$text[++$i].$text[++$i] : $text[$i];
UTF-8 中的汉字是 3 个字节。
Tags: php, 汉字
