生成随机汉字字符串 (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编码表

2007-11-08 127 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 个字节。

2006-03-01 107 php 汉字