微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)   ***/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐