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行)替换为空,请高手指点. 展开
1<TABLE border=0 cellSpacing=1 cellPadding=5 width=735 bgColor=#006666
2...
3...
4....
5</TD></TR></TBODY></TABLE>
把一个页面中,以1行开始,5行结束,这样的内容(1-5行)替换为空,请高手指点. 展开
2个回答
展开全部
这类替换最好不好使用正则表达式,因为你搜索的内容的唯一的无需使用正在,而且替换的文本较大正则效率太低。
方法是找到这两个特殊字符串的位置,然后使用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));
方法是找到这两个特殊字符串的位置,然后使用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));
追问
牛!思路非常棒,我先试试。
追答
这类代码写的次数有点多而已,不算牛,如果个别语句有错,你按照手册调整一下。
展开全部
假设你需要读取的文本块变量名为$x1
$xx=explode("\n",$x1);
这样,$xx(0)~$xx(4)都是你要去除的内容,剩下的自然就是你要留下的,可否?
$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)这样使用即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询