echo "<a href=$yoursite/article.php/$article[articleid]>$article[title]</a>";
======>echo "<a href=$yoursite/article.php/$article[articleid]>substr($article[title],0,30)...</a>";
======>echo "<a href=$yoursite/article.php/$article[articleid]>substr($article[title],0,30)...</a>";
$content="adff楼上的方法不好,会出fd现? 或是其它字fd符,如果前30个字符中有英文字符又有中文,上面的就不好用";
echo "cSubstr($content,30)";//中文算二个字符,英算一个字符,输出15个汉字或是30个英文字母。function cSubstr($string,$sublength) {
$len = strlen($string);
if ($len <= $sublength){
$string = $string;
}else{
$string = substr($string,"0",$sublength);
$parity= 0;
for($j=0;$j<$sublength;$j++){
$temp_str=substr($string,$j,1);
if(Ord($temp_str)>127) $parity+=1;
}
if($parity%2==1) {
$string=substr($string,0,($sublength-1));
} else {
$string=substr($string,0,$sublength);
}
}
return $string;}
$length:需要截取的长度
function sub_str($string, $length) {
if(strlen($string) > $length) {
for($i = 0; $i < $length - 3; $i++) {
if(ord($string[$i]) > 127) {
$wordscut .= $string[$i].$string[$i + 1];
$i++;
} else {
$wordscut .= $string[$i];
}
}
return $wordscut.'…';
}
return $string;
}
一个函数.
str_str()
$str = (string)$str;
$len = (int)$len;
$strlen = strlen($str);
if($len>$strlen) $len = $strlen;
$i = 0;
$fixlen = 0;
while($i<$len){
$chr = $str[$i];
$i++;
if(ord($chr)<0x80) $fixlen++; //128D
elseif($i<$len){
$i++;
$fixlen += 2;
}
}
$cutstr = substr($str,0,$fixlen);
if ($str <> $cutstr) {
$cutstr .= '...';
}
return $cutstr;}