php解析字符串里所有URL地址的方法
本文实例讲述了php解析字符串里所有URL地址的方法。分享给大家供大家参考。具体如下:
<?php
//$html=thehtmlonthepage
//$current_url=thefullurlthatthehtmlcamefrom
//(onlyneededfor$repath)
//$repath=converts../and/and//urlstofullvalidurls
functionpageLinks($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($linksas$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="https://www.nhooo.com";
$html=file_get_contents($url);
//Getslinksfromthepage:
print_r(pageLinks($html));
//Getslinksfromthepageandformatsthemtoafullvalidurl:
print_r(pageLinks($html,$url,true));
希望本文所述对大家的php程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下