很多站长朋友们都不太清楚正则提取链接php,今天小编就来给大家整理正则提取链接php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php正则提取 2、 php正则表达式提取链接 3、 php 取超链接的正则表达式 4、 php正则获取href的链接 5、 php正则提取字符串中的 图片和超链接 保存为txt格式 6、 php高手请进:正则提取超链接中的网址和标题,如果兼顾有双引号和单引号或没有引号的超链接? php正则提取可用如下的代码来实现:
<?php
$str1="|1234|#2354#@2314@
|1314|#2154#@2214@
|1234|#2354#@2314@
|1314|#2154#@2214@";
if(preg_match_all("/\|(\d{4})\|\#(\d{4})\#\@(\d{4})\@/m",$str1, $out, PREG_PATTERN_ORDER))
for($i=0;$i<count($out[0]);$i++)
{
echo "{'".$out[1][$i]."','".$out[2][$i]."','".$out[2][$i]."'}<br/>";
}
?>
效果如下所示:
{'1234','2354','2354'}
{'1314','2154','2154'}
{'1234','2354','2354'}
{'1314','2154','2154'}
php正则表达式提取链接$preg='/<a .*?href="(.*?)".*?>/is';
$str ='<a href="链接">123</a><a href="链接" target="_blank">345</a><a target="_blank" href="链接">678</a>';
preg_match_all($preg,$str,$match);
var_dump($match);
php 取超链接的正则表达式这段代码应该是你想要的.
==========
<?php
$test =<<<EOF
<a class="t4" href="read.php?id=9576" title="ffff">********</a>
@@@@@@@@@@@@@@
<a class="t5" href="read.php?id=9576" title="ffff">@@@@@@@</a>
EOF;
$pattern = '/href="(.*?)"/';
preg_match_all($pattern,$test,$result);
//你要的结果在数组的第二个元素内.
//print_r($result);
foreach($result[1] as $ritem){
echo $ritem;
}
?>
php正则获取href的链接使用正则中的子模式,按给出的代码匹配的话大概是这样
$pattern='/href=\"([^(\}>)]+)\"/';
然后使用preg_match或者preg_match_all如果替换的话使用preg_replace即可
php正则提取字符串中的 图片和超链接 保存为txt格式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
php高手请进:正则提取超链接中的网址和标题,如果兼顾有双引号和单引号或没有引号的超链接?<?php
$text = "递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。<a href=''>MP1</a><a href=;MP2</a><a href='' target='_blank'>MP3</a><a href= target=mainFrame>MP4</a><a href= style=\"font-size:32px;color:#e53333;\">MP5</a><a href=\"\">MP6</a>";
preg_match_all('/<a href=(.*)>(.*)<\/a>/isU',$text,$data_arr);
foreach( $data_arr[1] as $key=>$val ) {
$replace_str = $data_arr[0][$key];
$title = $data_arr[2][$key];
preg_match("/(https?|ftp|mms):\/\/([A-z0-9]+[_\-]?[A-z0-9]+\.)*[A-z0-9]+\-?[A-z0-9]+\.[A-z]{2,}(\/.*)*\/?/",$val,$url_data);
$url = $url_data[0];
$text = str_replace($replace_str,"<br/>\n{$title} {$url}",$text);
}
var_dump($text);
?>
这个可以识别得了网址中包含http开头的链接地址格式的。但如果还需匹配相对地址,建议是将所有可能出现的情况一一替换掉
关于正则提取链接php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于正则提取链接php 正则表达式提取url的详细内容...