• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP获取页面中所有链接的正则

php 搞代码 4年前 (2022-01-23) 11次浏览 已收录 0个评论

总结了一个PHP获取页面中的所有链接的函数,函数代码如下:

<p>/*</p>*PHP获取页面中的所有链接<br />*/<br />function getPageLink($url){<br />	set_time_limit(0);<br />	$html=file_get_contents($url);<br />	preg_match_all("/]+s*)href=([\"|']?)([^\"'>\s]+)([\"|']?)/ies",$html,$out);<br />	$arrLink=$out[3];<br />	$arrUrl=parse_url($url);<br />	$dir='';<br />	if(isset($arrUrl['path'])&&!empty($arrUrl['path'])){<br />		$dir=str_replace("\\","/",$dir=dirname($arrUrl['path']));<br />		if($dir=="/"){<br />			$dir="";<br />		}<br />	}<br />	if(is_array($arrLink)&&count($arrLink)>0){<br />		$arrLink=array_unique($arrLink);<br />		foreach($arrLink as $key=>$val){<br />			$val=strtolower($val);<br />			if(preg_match('/^#<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p><strong>搞代gaodaima码</strong>*$/isU',$val)){<br />				unset($arrLink[$key]);<br />			}elseif(preg_match('/^\//isU',$val)){<br />				$arrLink[$key]='http://'.$arrUrl['host'].$val;<br />			}elseif(preg_match('/^javascript/isU',$val)){<br />				unset($arrLink[$key]);<br />			}elseif(preg_match('/^mailto:/isU',$val)){<br />				unset($arrLink[$key]);<br />			}elseif(!preg_match('/^\//isU',$val)&&strpos($val,'http://')===FALSE){<br />				$arrLink[$key]='http://'.$arrUrl['host'].$dir.'/'.$val;<br />			}<br />		}<br />	}<br />	sort($arrLink);<br />	return $arrLink;<br />}

函数用法如下:

<p>$links=getPageLink('http://www.scutephp.com');</p>echo "<pre class="prettyprint linenums">";<br />print_r($links);

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP获取页面中所有链接的正则
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址