php 替换指定字符串中,两个字符串之间(包括这两个字符串)之间的内容

如:1<TABLEborder=0cellSpacing=1cellPadding=5width=735bgColor=#0066662...3...4....5</TD... 如:
1<TABLE border=0 cellSpacing=1 cellPadding=5 width=735 bgColor=#006666
2...
3...
4....
5</TD></TR></TBODY></TABLE>
把一个页面中,以1行开始,5行结束,这样的内容(1-5行)替换为空,请高手指点.
展开
 我来答
阳光上的桥
2014-05-28 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
这类替换最好不好使用正则表达式,因为你搜索的内容的唯一的无需使用正在,而且替换的文本较大正则效率太低。

方法是找到这两个特殊字符串的位置,然后使用substr删除中间部分,例子代码:

$str='....你要处理的字符串.....';
$s1='...开始字符串...';
$s2='...结束字符串...';
$i1=strpos($str,$s1);//开始位置
$i2=strpos($str,$s2);//结束位置
if ($i1!==false && $i2!==false)//找到
$str=substr($str,0,$i1-1) . substr($str,$i2+strlen($s2));
追问
牛!思路非常棒,我先试试。
追答
这类代码写的次数有点多而已,不算牛,如果个别语句有错,你按照手册调整一下。
金陵小七d5
2014-05-28 · TA获得超过2010个赞
知道小有建树答主
回答量:1623
采纳率:0%
帮助的人:1024万
展开全部
假设你需要读取的文本块变量名为$x1

$xx=explode("\n",$x1);

这样,$xx(0)~$xx(4)都是你要去除的内容,剩下的自然就是你要留下的,可否?
追问
文本内容太多,这个办法对于小内容还可以,这个办法不太好,谢谢。因为文本内容也是开头和结尾知道,中间部分不固定。所以这个办法不行。
还是要谢谢。
追答
你如果是要截取某块内容,可以利用正则做个函数来统一处理

function gettag($stag,$etag,$block)
{
preg_match_all("'".$stag.".*".$etag."'Usi", $block, $matches);
return $matches[0][0];
}

$stag是起始标签,$etag是结束标签,$block是需要处理的文本块
如gettag("",$block)这样使用即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式