加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php 字符串所有URL地址解析示例

发布时间:2020-05-25 05:03:07 所属栏目:PHP 来源:互联网
导读:php 字符串所有URL地址解析示例

对php解析字符串里的所有URL地址感兴趣的小伙伴,下面一起跟随脚本之家 jb51.cc的小编两巴掌来看看吧!


<?php 
/**
 * php解析字符串里的所有URL地址
 *
 * @param 
 * @author 脚本之家 jb51.cc jb51.cc
 **/
// $html        = the html on the page 
// $current_url = the full url that the html came from (only needed for $repath) 
// $repath      = converts ../ and / and // urls to full valid urls 
function pageLinks($html,$current_url = "",$repath = false){ 
	preg_match_all("/<a.+?href=("|')(?!javascript:|#)(.+?)("|')/i",$html,$matches); 
	$links = array(); 
	if(isset($matches[2])){ 
		$links = $matches[2]; 
	} 
	if($repath && count($links) > 0 && strlen($current_url) > 0){ 
		$pathi      = pathinfo($current_url); 
		$dir        = $pathi["dirname"]; 
		$base       = parse_url($current_url); 
		$split_path = explode("/",$dir); 
		$url        = ""; 
		foreach($links as $k => $link){ 
			if(preg_match("/^../",$link)){ 
				$total = substr_count($link,"../"); 
				for($i = 0; $i < $total; $i++){ 
					array_pop($split_path); 
				} 
				$url = implode("/",$split_path) . "/" . str_replace("../","",$link); 
			}elseif(preg_match("/^///",$link)){ 
				$url = $base["scheme"] . ":" . $link; 
			}elseif(preg_match("/^/|^.//",$link)){ 
				$url = $base["scheme"] . "://" . $base["host"] . $link; 
			}elseif(preg_match("/^[a-zA-Z0-9]/",$link)){ 
				if(preg_match("/^http/",$link)){ 
					$url = $link; 
				}else{ 
					$url       = $dir . "/" . $link; 
				} 
			} 
			$links[$k] = $url; 
		} 
	} 
	return $links; 
} 
header("content-type: text/plain"); 
$url = "http://*"; 
$html = file_get_contents($url); 
// Gets links from the page: 
print_r(pageLinks($html));
// Gets links from the page and formats them to a full valid url: 
print_r(pageLinks($html,$url,true));


/***   来自脚本之家 jb51.cc(jb51.cc)   ***/

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读