我们核心代码就是正则表达试了
代码如下 | 复制代码 |
function get_all_url($code){ preg_match_all(‘/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i’,$code,$arr); return array(‘name’=>$arr[2],’url’=>$arr[1]); } |
上面只是简单的下面看全例
代码如下 | 复制代码 |
$url ='http://www.111cn.net'; $body=@file_get_contents($url); preg_match_all('/href=['"]?([^'"]*)['"]?>(.*)/i',$body,$b); $nums = array(); foreach($b[1] as $u){ if(in_array($u,$nums)){ continue; } $nums[]=$u; $title=strip_tags($u); echo $title."</br>"; } |
利用curl函数来获取
代码如下 | 复制代码 |
<?php /* * 使用curl 采集www.111cn.net下的所有链接。 */ include_once('function.php'); $ch = curl_init(); curl_close($ch); printf("<p>此页面的所有链接为:</p><pre>%s</pre>n", var_export($linkresult , true)); ?> |
获取所有网址,但只有不重复的数据
代码如下 | 复制代码 |
<? $e=clinchgeturl("http://im286.com/forumdisplay.php?fid=1"); var_dump($e); function clinchgeturl($url) { //$url="http://127.0.0.1/1.htm"; //$rootpath="http://fsrootpathfsfsf/yyyyyy/"; //var_dump($rrr); if(eregi('(.)*[.](.)*',$url)){ $roopath=split("/",$url); $rootpath="http://".$roopath[2]."/"; $nnn=count($roopath)-1;for($yu=3;$yu<$nnn;$yu ){$rootpath.=$roopath[$yu]."/";} // var_dump($rootpath); //http: ,'',127.0.0.1,xnml,index.php } else{$rootpath=$url;//var_dump($rootpath); } if(isset($url)){ echo "$url 有下列裢接:<br>"; $fcontents = file($url); while(list(,$line)=each($fcontents)){ while(eregi('(href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-] [?]?[^"]*"?)',$line,$regs)){ //$regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-] )("?)',"\2",$regs[1]); $regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*["]?)([[:alnum:]:@/._-] [?]?[^"]*)(.*)[^"/]*(["]?)',"\2",$regs[1]); if(!eregi('^http://',$regs[1])){ if(eregi('^..',$regs[1])){ // $roopath=eregi_replace('(http://)?([[:alnum:]:@/._-] )[[:alnum:] ](.*)[[:alnum:] ]',"http://\2",$url); $roopath=split("/",$rootpath); $rootpath="http://".$roopath[2]."/"; //echo "这是根本d :"."n"; $nnn=count($roopath)-1;for($yu=3;$yu<$nnn;$yu ){$rootpath.=$roopath[$yu]."/";} //var_dump($rootpath); if(eregi('^..[/[:alnum:]]',$regs[1])){ //echo "这是../目录/ :"."n"; //$regs[1]="../xx/xxxxxx.xx"; // $rr=split("/",$regs[1]); //for($oooi=1;$oooi<count($rr);$oooi ) $rrr=$regs[1]; // {$rrr.="/".$rr[$oooi]; $rrr = eregi_replace("^[.][.][/]",'',$rrr); / |
时间: 2024-09-20 04:07:13