PHP 采集获取指定网址的内容

 更新时间:2010年01月05日 23:00:37   作者:  
用php来获取指定网页内容的实现代码,一般采集程序经常用的一些代码,这里只是一个简单的基础。更详细的资料可以参考php 采集成品,可以使用的源码,这样才能学会更多的东西。
参考别人想法变成自己的想法,你会发现慢慢下来以后你就拥有了临时解决很多问题的思路与方法。
复制代码 代码如下:

<?php
/*
功能:获取页面内容,存储下来阅读; lost63
*/
Class GetUrl{
var $url; //地址
var $result; //结果
var $content; //内容
var $list; //列表
function GetUrl($url){
$this->url=$url;
$this->GetContent();
$this->GetList();
$this->FileSave();
//print_r($this->list[2]);
}
private function GetContent(){
$this->result=fopen($this->url,"r");
while(!feof($this->result)){
$this->content.=fgets($this->result,9999);
}
}
private function GetList(){
preg_match_all('/<a(.*?)href="(.*?)">(.*?)<\/a>/',$this->content,$this->list);
$this->list[2]=array_unique($this->list[2]); //移除相同的值
while(list($key,$value)=each($this->list[2])){
if(strpos($value,".html")==0||strpos($value,"jiaocheng")==0){
unset($this->list[2][$key]);
}else{
$this->list[2][$key]=substr($value,0,strpos($value,".html")).".html"; //去掉不需要的标签
}
}
}
private function FileSave(){
foreach($this->list[2] as $value){
$this->url=$value; //重新赋值
$this->content=null;
$this->GetContent(); //提取内容
preg_match_all('/<title>(.*?)<\/title>/',$this->content,$files); //取标题
$filename=$files[1][0].".html"; //存储名
$content=$this->str_cut($this->content,'http://pagead2.googlesyndication.com/pagead/show_ads.js','<div id="article_detail">');
$file=fopen($filename,"w");
fwrite($file,$content);
fclose($file);
echo $filename."保存 OK<br>\n";
}
}
function str_cut($str ,$start, $end) {
$content = strstr( $str, $start );
$content = substr( $content, strlen( $start ), strpos( $content, $end ) - strlen( $start ) );
return $content;
}
}
$w=new GetUrl("http://www.ijavascript.cn/jiaocheng/javascript-jiaocheng-352.html");
?>

相关文章

  • 一文详解php中.env实现原理

    一文详解php中.env实现原理

    在PHP中,.env文件是一种常见的配置文件格式,用于存储应用程序的环境变量,本文将给大家大家详细的介绍一下php中.env实现原理,文中给出了简单的示例代码,需要的朋友可以参考下
    2024-01-01
  • php引用计数器进行垃圾收集机制介绍

    php引用计数器进行垃圾收集机制介绍

    每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁;防止程序执行内存溢出
    2012-09-09
  • PHP中的浅复制与深复制的实例详解

    PHP中的浅复制与深复制的实例详解

    这篇文章主要介绍了PHP中的浅复制与深复制的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • phplot生成图片类用法详解

    phplot生成图片类用法详解

    这篇文章主要介绍了phplot生成图片类用法,较为详细的分析了phplot生成图片类常用函数的用法及生成图片的完整实例,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • Mac下php 5升级到php 7的步骤详解

    Mac下php 5升级到php 7的步骤详解

    这篇文章主要给大家介绍了在Mac下将php 5升级到php 7的步骤,文中将步骤介绍的非常详细,并分享了在升级过程中可能遇到的问题的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • php去除换行符的方法小结(PHP_EOL变量的使用)

    php去除换行符的方法小结(PHP_EOL变量的使用)

    本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r。因此unix系列用 /n,windows系列用 /r/n,mac用 /r,这样就用你写的程序在不同的平台上运行有着不少的麻烦
    2013-02-02
  • PHP命名空间与自动加载机制的基础介绍

    PHP命名空间与自动加载机制的基础介绍

    这篇文章主要给大家介绍了关于PHP命名空间与自动加载机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 360通用php防护代码(使用操作详解)

    360通用php防护代码(使用操作详解)

    本篇文章是对360通用php防护代码的使用操作步骤进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • laravel源码分析队列Queue方法示例

    laravel源码分析队列Queue方法示例

    这篇文章主要为大家介绍了laravel源码分析队列Queue方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪<BR>
    2022-04-04
  • php引用地址改变变量值的问题

    php引用地址改变变量值的问题

    看到原始值确实被修改了,发生在引用之后并被赋值之后,但被赋值之前则原始变量不会改变
    2012-03-03

最新评论