能不能把PHP网页改下?

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:47:30
这个是CTB论坛的一个网页,PHP的:
<table cellpadding=4 cellspacing=1 class="tInner"><tr class="tBody2"><td
style="word-break: break-all" ><i>原作者:</i><b>$postQuoteName</b> $postQuoteTime<br>wordscut($postQuoteText)</td></tr></table><br><br>
功能是引用贴子,不过,现在有些问题,
就是,当原贴很长时,引用时,将把原贴子内容全部引用出来,有些不便。
我现在的想法是,
仅获取原贴子的前100个字符,也就是50个汉字。
能不能实现下?
高手帮助下……
——————————这个是在网上找的函数,但怎么用啊。
function wordscut($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;
}
————————————————————
只有使用自写函数来截取包含中文的字符串,函数如下:
$string为字符串。
$length为要截取的长度。
有个问题要注意下,
如果

为什么要自己写函数呢?PHP自己就有截取字符串的函数啊,substr()
以下是PHP手册里的函数说明:

substr
(PHP 3, PHP 4, PHP 5)

substr -- Return part of a string
Description
string substr ( string string, int start [, int length] )

substr() returns the portion of string specified by the start and length parameters.

If start is non-negative, the returned string will start at the start'th position in string, counting from zero. For instance, in the string 'abcdef', the character at position 0 is 'a', the character at position 2 is 'c', and so forth.

substr 处理一些汉字之类的会出毛病
建议看看这段代码, 从 Discuz! 里面挖出来的
以前他也是直接 substr, 但是处理 utf8 的字符就会产生一些不可预料的结果, 所以后来更新了
这个函数 Discuz! 用了那么久, 不会有什么问题的

function cutstr($string, $length, $dot = ' ...') {
global $charset;

if(strlen($string) <= $length) {
return $string;
}

$string = str_replace(array('&', '"',