………………这个要求有点BY了。能够区分英文单词,就是一种非常了不起的程序了,你更有趣,向区分段落。你的段落有分隔符么?使用的是什么样的分隔符?如果是p关键字的,还好说,但是,如果是其他的呢?唉~~你就慢慢烤炉吧,这个问题,就够你解决的了。而且,其他的维护人员不知道这样的规则,你不是要被骂死????
解决方案 »
- Catchable fatal error: Object of class dUser could not be converted to string in on line 16
- 正则表达式的一个问题
- 帮我看看这段代码什么意思, 正则+rewrite
- 如何只知道虚拟主机支不支持PDO库。在线等待
- 为什么我的验证码不同步呢???
- sql优化:select * from `table1` t1 LEFT t2.id=t1.id order by t2.order 速度很慢
- Android系统平板,怎样安装PHP?
- 请问这个错误在哪里?小生初学php呀
- 怎么合并数组?
- 请教一个php的简单问题
- php+apach支持中文吗?
- 跨页面后,session读取失败的问题
$ext="...";
if (strlen($str_cut) > $length){
for($i=0; $i < $length; $i++)
if (ord($str_cut[$i]) > 128) $i++;
$str_cut = substr($str_cut,0,$i) . $ext;
}
return $str_cut;
}
?>
我有个中文截取的函数
英文、数字算一个字还是半个字?
有无html标记或其它特殊标记,是否计入500‘字’?
2、英文数字要求不是那么严格,算一个字也行、算半个字也可以
2、有html标记或其它特殊标记,,应该计入500‘字’,如果不计入也没有太大问题,
substr 500*2 字节下来,
然后 strrpos '<br/>' 找到最后一个<br/> 从这个位置分割即可如果没找到,说明只有一段,就向后 strpos 找到第一个<br/> 分割即可
$len=strlen($content);
$con=ceil($len/3);
echo $con;
for($i=0;$i<$con;$i++)
{
$ca=cnSubStr($content,(6*$i),6);
echo $ca."<br>";
}
$len=strlen($content);
$con=ceil($len/3);
echo $con;
for($i=0;$i<$con;$i++)
{
$ca=cnSubStr($content,(6*$i),6);
echo $ca."<br>";
}
上面写的,如果都是汉字就是正常的,如果有符号,输出的就都是乱码
while($r = 读一段()) {
if(strlen($buffer.$r)>500) break;
$buffer .= $r;
}
echo $buffer;
Fatal error: Call to undefined function 读一段() in C:\AppServ\www\zifu.php on line 35
Fatal error: Call to undefined function 读一段() in C:\AppServ\www\zifu.php on line 35
-------------
呵呵,lz........
是不是copy惯了?
然后用正则啊
(?<name>.{0,500})</br>
现在的问题是:我怎么判断一段的问题,现在有的是二段+一个半段,,有的是不到一段。我应该怎么处理?用strrpos我没有处理明白!
那就先
substr 500*2 字节下来,
然后 strrpos '<br/>' 找到最后一个<br/> 从这个位置分割即可如果没找到,说明只有一段,就向后 strpos 找到第一个<br/> 分割即可
=====================================思路是对的,但怎么写,我就不清楚了,等待高手出现!
根据:
1、如果4段文字超过了500字,那么我只取前三段(前三段没有超过500字),不要第四段。
2、段落是以<br/>分开的$text = '文章内容';
$buffer = strtok($text, '<br/>');
while($r = strtok('<br/')) {
if(strlen($buffer.$r)>500) {
$out[] = $buffer;
$buffer = '';
}else
$buffer .= '<br/>'.$r;
}
$out[] = $buffer;print_r($out);
$buffer = strtok($text, '<br/>'); //读取第一段
while($r = strtok('<br/')) { //读取后续段
if(strlen($buffer.$r)>500) { //如果已读内容加后续段的长度超过限制
$out[] = $buffer; //保存已读内容
$buffer = ''; //清空缓冲区
}
$buffer .= '<br/>'.$r; //将后续段附加在已读内容后
}
$out[] = $buffer;print_r($out);