频道直达 - 专题 - 新闻 - 基础 - 高级 - 安装 - 技巧 - 数据库 - 手册 - PHP - Linux - Java - MySQL - Apache - 麻辣堂 - 狼盟 - Rails社群 - 搜索 - 下载 - 开源 - 论坛
PHP开发资源网 主页>>PHP基础教程>> 收藏此文 | 收藏本站 | 设为首页

解析网页里的 link,包括 mailto, http, https

来源:www.phpx.com 作者:额系菜屁屁 出处:www.phpx.com 2007-6-4 21:32:25 进入讨论组
关 键 词: 解析网页里的 link,包括 mailto, http, https

看到这里( http://www.phpx.com/happy/thread-119840-1-1.html )有人要 ,偶就抽空弄了个

<?php

/**
 * $Id: parseLInk.php,v 1.4 2006/06/30 06:35:00 Administrator Exp Administrator $
 *
 * Filename : parseLInk.php
 * Author   : Dummy | Zandy | 额系菜屁屁
 * Email    : [email]lianxiwoo@gmail.com[/email] | hotmail.com
 * Create   : 200605
 * LastMod  : 2006
 * Usage    : 
*/

ini_set('display_errors'1);
error_reporting(E_ALL E_NOTICE);
//header("Content-type:text/html;charset=utf-8");

$url 'http://www.phpx.com/happy/thread-119840-1-1.html';

$url 'http://www.phpx.com/happy/thread-119396-7-1.html';

$parse_url parse_url($url);

p($parse_url);

$url_pre $parse_url['scheme'].'://'.$parse_url['host'].dirname($parse_url['path']);

$urls = array(); // 将解析保存结果

$a file_get_contents($url);

$preg "/<a[s]([^>]+)>/is";

$preg "/<a[s]+[^>]*href=[\"']?([^>'\"]+)[\"']?[^>]*>/is";


$s preg_match_all($preg$a$m);

p($m);

foreach (
$m[1] as $k => $v){
    
$v trim($v);
    if (
substr($v01) == '#'){
        continue;
    }elseif (
strtolower(substr($v06)) == 'mailto'){
        
$v trim(strstr($v":"));
        
$v trim(substr($v1));
        if (
strlen($v) <= || false === strpos($v'@')){
            continue;
        }
        
$urls['mailto'][] = $v;
    }elseif (
strtolower(substr($v05)) == 'https') {
        if (
false !== strpos($v" ")){
            
$v substr($v0strpos($v" "));
        }
        if (
strlen($v) <= 8){
            continue;
        }
        
$urls['https'][] = $v;
    }elseif (
strtolower(substr($v04)) == 'http') {
        if (
false !== strpos($v" ")){
            
$v substr($v0strpos($v" "));
        }
        if (
strlen($v) <= 7){
            continue;
        }
        
$urls['http'][] = $v;
    }else{
        if (
false !== strpos($v" ")){
            
$v substr($v0strpos($v" "));
        }
        if (
$v && substr($v01) != '/'){
            
$v '/'.$v;
        }
        
$urls['http'][] = $url_pre.$v;
    }
}

p($urls); // 打印解析结果

/**
 * 
 * @createtime   
 * @author       Dummy | Zandy
 * @modifiedby   $LastChangedBy:  $
 * @param        
 * @return       
 * @throws       none
*/
function p($s){
    echo 
'<xmp>';
    
print_r($s);
    echo 
'</xmp>';
}

?>

 

附件请到此处下载:http://www.phpx.com/happy/viewthread.php?tid=119846

欢迎进入PHP开发资源论坛讨论。
收藏此文】【 】【打印】【关闭
相关文章
图文推荐
论 坛 资 源
PHP开发资源网奋斗目标
阅读排行:
热门技术文档
最新图文档
本站编辑推荐:(本站开通Delphi4PHP专区,欢迎进入论坛交流!)
编缉最近更新文章
网站赞助商
搜索您感兴趣的内容
 
   网站首页 -  网站地图 -  网站合作 -  手册中心 -  通用网址 -  网站论坛 -  网站投稿 -  友情链接 -  帮助中心
版权所有:PHP开发资源网 © 2003-2008 通用网址:PHP资源网 合作媒体: 赛迪网IT技术
互联网违法和不良信息举报中心 | 不良信息举报信箱