从HTML中提取URL

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>joker</title>
  </head>
  <body>
    <?php
    if(getenv('REQUST_METHOD')=='POST'){
      $url = $_POST['url'];
    }
    else{
      $url = $_GET['url'];
    }
     ?>
     <form  action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
       <p>URL: <input type="text" name="url" value="<?php echo $url ?>" /><br />
         <input type="submit" >
     </form>
     <?php
     $remoter = fopen($url,'r');{
       $html = fread($remote,1048576);
     }
     fclose($remote);

     $urls = '(http|telnet|gopher|file|wais|ftp)';
     $ltrs = '\w';
     $gunl = '/#~:.?+=&%@!';
     $punc = '.:?\-';
     $any  = '{$ltrs}{$gunl}{$punc}';

     preg_match_all("{
       \b
       {$urls}:
       [{$any}] +?
       (?=
       [{$punc}]*
       [^{$any}]
       |
       \$
       )
     }x",$html,$matches);

     printf("I found %d URLs<P>\n",sizeof($matches[0]));

     foreach($matches[0] as $u){
       $link = $_SERVER['PHP_SELF'] . '?url=' . urlencode($u);
       echo "a href=\"{$link}\">{$u}</a><br />\n";
      }
       ?>
  </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值