………………这个要求有点BY了。能够区分英文单词,就是一种非常了不起的程序了,你更有趣,向区分段落。你的段落有分隔符么?使用的是什么样的分隔符?如果是p关键字的,还好说,但是,如果是其他的呢?唉~~你就慢慢烤炉吧,这个问题,就够你解决的了。而且,其他的维护人员不知道这样的规则,你不是要被骂死????
解决方案 »
- 关于PHP乱码问题
- (菜鸟飞飞) 页面内点击按钮,出现当前系统的时间戳
- PHP+JQUERY的词典小偷程序,要的下载
- 提取这个网页的数据,正则怎么写呢?
- 请教环境问题.
- 两台linux服务器下配置的ftp关于图片上传的问题
- 请问高手php的预定义变量有哪些?!
- 谁有用php编的在线出题的程序代码?给他100分
- WEI Shen me Cuo le ,Parse Error!!
- 我在WIN2000的机子上装了IIS4。0,局域网内能访问该机子上的HTML网页,但是不能访问ASP,为什么,谁能告诉我怎么架设一个ASP加SQL的局域网。
- 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);