有時我們需要過濾或提取html字符串的外鏈接了,下面我介紹一個利用PHP正則表達式提取html超鏈接中的href地址程序,各位機參考。
用php的正則表達式相關函數,實現提取html超鏈接<a href="地址"></a>中的地址。
代碼如下 復制代碼<?php
$preg='/<a .*?href="(.*?)".*?>/is';
$str ='<a href="鏈接1">URLNAME</a>文本段1<a href="鏈接2" target="_blank">URLNAME</a>文本段2<a target="_blank" href="鏈接3">URLNAME</a>...文本段n';
preg_match_all($preg,$str,$match);//在$str中搜索匹配所有符合$preg加入$match中
for($i=0;$i<count($match[1]);$i++)//逐個輸出超鏈接地址
{
echo $match[1][$i]."<br />";
}
?>
最終輸出:
鏈接1<br />鏈接2<br />鏈接3<br />
附一個
PHP的正則表達式提取圖片地址的代碼。
$str='<p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_4.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_3.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';
$pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg]))['|"].*?[/]?>/";
preg_match_all($pattern,$str,$match);
print_r($match);