php正则提取字符串中的 图片和超链接 保存为txt格式
字符串======================<td><tableborder=0cellpadding=0cellspacing=0><tr><tdalign=ce...
字符串
======================
<td>
<table border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
省略一些~~~~~~~~~~~~~~~~~
<tr>
<td><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank><img src=/files/images/18079.jpg width=105 height=121 border=0></a></td>
</tr>
省略一些~~~~~~~~~~~~~~~~~
</td>
</tr>
<tr>
<td align=center height=25><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank>撒旦发公司分公司大概使得法国</a></td>
</tr>
</table>
</td>
<td>
省略一些~~~~~~~~~~~~~~~~~
<td><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank><img src=/files/images/18068.jpg width=105 height=121 border=0></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align=center height=25><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank>阿道夫三个地方华盛顿国会</a></td>
</tr>
</table>
</td>
======================
现在需要获取 类似 如下的部分的内容
<td><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank><img src=/files/images/18079.jpg width=105 height=121 border=0></a></td>、
里面的 /news/2009-05-10/468487.htm 和 /files/images/18079.jpg 内容
然后 保存为txt格式 文件内容格式如下 连接&&&&&&&&&&图片 供后续处理
/news/2009-05-10/468487.htm&&&&&&&&&&/files/images/18079.jpg
/news/2009-05-09/898449.htm&&&&&&&&&&/files/images/18068.jpg
每行一个。
求给出具体php实例代码。谢谢。我php太差,空有思路。能力不够。谢谢。 展开
======================
<td>
<table border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
省略一些~~~~~~~~~~~~~~~~~
<tr>
<td><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank><img src=/files/images/18079.jpg width=105 height=121 border=0></a></td>
</tr>
省略一些~~~~~~~~~~~~~~~~~
</td>
</tr>
<tr>
<td align=center height=25><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank>撒旦发公司分公司大概使得法国</a></td>
</tr>
</table>
</td>
<td>
省略一些~~~~~~~~~~~~~~~~~
<td><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank><img src=/files/images/18068.jpg width=105 height=121 border=0></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align=center height=25><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank>阿道夫三个地方华盛顿国会</a></td>
</tr>
</table>
</td>
======================
现在需要获取 类似 如下的部分的内容
<td><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank><img src=/files/images/18079.jpg width=105 height=121 border=0></a></td>、
里面的 /news/2009-05-10/468487.htm 和 /files/images/18079.jpg 内容
然后 保存为txt格式 文件内容格式如下 连接&&&&&&&&&&图片 供后续处理
/news/2009-05-10/468487.htm&&&&&&&&&&/files/images/18079.jpg
/news/2009-05-09/898449.htm&&&&&&&&&&/files/images/18068.jpg
每行一个。
求给出具体php实例代码。谢谢。我php太差,空有思路。能力不够。谢谢。 展开
展开全部
php正则提取字符串中的图片和超链接并保存为txt格式文件的程序如下:
此程序提取图片和htm的超链接,并把它们存入1.txt文件.
<?php
$str = "<td> <table border=0 cellpadding=0 cellspacing=0> <tr> <td align=center> 省略一些~~~~~~~~~~~~~~
~~~ <tr> <td><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank><img
src=/files/images/18079.jpg width=105 height=121 border=0></a></td> </tr> 省略一些~~~~~~~~~~~~~~~~~
</td> </tr> <tr> <td align=center height=25><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国
target=_blank>撒旦发公司分公司大概使得法国</a></td> </tr> </table> </td> <td> 省略一些~~~~~~~~~~~~~~~~~
<td><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank><img src=/files/images/18068.jpg width=105
height=121 border=0></a></td> </tr> </table> </td> </tr> <tr> <td align=center
height=25><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank>阿道夫三个地方华盛顿国会</a></td> </tr>
</table> </td>";
preg_match_all("~<a href=(.*?)\s.+?(<img src=(.*?)\s.+?)?</a>~",$str,$matches);
$k=fopen("1.txt","a");
for($i=0;$i<count($matches[1]);$i++){
if($matches[3][$i]==""){
}else{
$s=$matches[1][$i]."&&&&&&&&&&".$matches[3][$i]."\r\n";
fwrite($k,$s);
}
}
fclose($k);
?>
运行结果:
1.txt文件内容
/news/2009-05-10/468487.htm&&&&&&&&&&/files/images/18079.jpg
/news/2009-05-09/898449.htm&&&&&&&&&&/files/images/18068.jpg
更多追问追答
追问
你好。代码可以正常使用。感谢您的帮助。现在还有一点点小问题。
我需要浏览字符串的时候从后往前提取。也就是最后面的 符合规则的内容 放在第一条,倒序保存到txt中。能否帮我修改一下。感谢。
追答
你把for循环改一下就行了.
把for($i=0;$i=0;$i--){
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-11-09
展开全部
<?php
$String = '====================== <td> <table border=0 cellpadding=0 cellspacing=0> <tr> <td align=center> 省略一些~~~~~~~~~~~~~~~~~ <tr> <td><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank><img src=/files/images/18079.jpg width=105 height=121 border=0></a></td> </tr> 省略一些~~~~~~~~~~~~~~~~~ </td> </tr> <tr> <td align=center height=25><a href=/news/2009-05-10/468487.htm title=撒旦发公司分公司大概使得法国 target=_blank>撒旦发公司分公司大概使得法国</a></td> </tr> </table> </td> <td> 省略一些~~~~~~~~~~~~~~~~~ <td><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank><img src=/files/images/18068.jpg width=105 height=121 border=0></a></td> </tr> </table> </td> </tr> <tr> <td align=center height=25><a href=/news/2009-05-09/898449.htm title=阿道夫三个地方华盛顿国会 target=_blank>阿道夫三个地方华盛顿国会</a></td> </tr> </table> </td>======================搜索'; //这是你所说的字符串
preg_match_all('/<[a|img]+\s+[href|src]+=([^\s+]*)/is', $String, $Array); //正则匹配并生成数组
$Array = array_unique( $Array[1] );
$T = '';
$i = 0;
foreach( $Array as $value ) {
$T .= $i % 2 == 0 ? $value : '&&&&&&&&&&' . $value . '
';
$i++;
}
file_put_contents('1.txt', $T );
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询