PHP 4.0 时尚编程百例 —  实例 69  取得页面的链接

林继 PHP 技术 6,498 共写了629个字 (2005-08-16 18:47:34) 没有评论 打印 扫描二维码 百度已收录

实例说明

本例将使用函数取得页面的所有链接。fopen()函数用来打开本地或者远程的文件,若参数 filename 为 http://……, 则本函数利用 http 1.0 协议与远程服务器连接,文件指针则指到服务器,传回文件的起始处。在后面通过循环语句打印页面的所有的链接。

编程思路

为了验证函数的使用,可以从浏览器打开微软的网站的首页,取得微软首页的所有链接,同时打印出来。具体方法首先使用fopen()函数,$URL = “http: // www. microsoft.com/”.

下一步使用循环函数,在变量feof($page)中循环,并且使用相关函数取得页面的全部链接$line = fgets($page, 255),然后检查链接的情况,打印出符合的子项来.

  1. while(ereg("href="[^"]*"",$line,$match))
  2.  {
  3.   //打印出URL链接
  4.   print("<Li>");
  5.   print($match[0]);
  6.   print("</Li>");
  7.   print("<BR>n");
  8.  }

通过循环语句,就能得到所有的页面链接情况.

关闭链接fclose($page),本函数用来关闭已经打开的文件指针fp,成功传回true,失败则传回false.

创作步骤

一、打开链接

$page = fopen($URL, “r”)函数将返回操作文档的句柄。

二、循环语句,打印链接

  1. while(!feof($page))//在页面中循环
  2. {
  3.     $line = fgets($page, 255);
  4.     while(ereg("href="[^"]*"",$line,$match))
  5.     {
  6.     //打印出URL链接
  7.          print("<Li>");
  8.          print($match[0]);
  9.          print("</Li>");
  10.          print("<BR>n");
  11.     }
  12. }

首先使用$line = fgets($page, 255),取得页面链接的数据,判断数据有效性,并打印正确的数据

三、关闭链接

fclose($page) 释放系统资源

四、本例程序代码

  1. <?php
  2.    $URL = "http: // www. microsoft.com/";
  3.  
  4.    //start HTML page
  5.    print("<HTML>n");
  6.    print("<HEAD>n");
  7.    print("<TITLE>取得页面的链接</TITLE>n");
  8.    print("</HEAD>n");
  9.  
  10.    print("<BODY>n");
  11.  
  12.    $page = fopen($URL, "r");//打开URL
  13.  
  14.    print("链接 $URL <br />n");
  15.    print("<UL>n");
  16.  
  17.    while(!feof($page))//在页面中循环
  18.    {
  19.         $line = fgets($page, 255);
  20.         while(ereg("href="[^"]*"",$line,$match))
  21.        {
  22.             //打印出URL链接
  23.             print("<Li>");
  24.             print($match[0]);
  25.             print("</Li>");
  26.             print("<BR>n");
  27.         }
  28. }
  29.  
  30. print("</UL>n");
  31.  
  32. fclose($page);
  33.  
  34. //关闭页面
  35. print("</BODY>n");
  36. print("</HTML>n");
  37.  
  38. ?>

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >