手机
当前位置:查字典教程网 >编程开发 >php教程 >php file_get_contents函数轻松采集html数据
php file_get_contents函数轻松采集html数据
摘要:复制代码代码如下:

复制代码 代码如下:

<?php

//全国,判断条件是$REQUEST_URI是否含有html

if (!strpos($_SERVER["REQUEST_URI"],".html"))

{

$page="http://qq.ip138.com/weather/";

$html = file_get_contents($page,'r');

$pattern="/<B>全国主要城市、县当天和未来五天天气趋势预报在线查询</B>(.*?)<center>/si";

//正则匹配之间的html

preg_match($pattern,$html,$pg);

echo "";

//正则替换远程地址为本地地址

$p=preg_replace('//weather/(w+)/index.htm/', 'tq.php/$1.html', $pg[1]);

echo $p;

}

//省,判断条件是$REQUEST_URI是否含有?

else if(!strpos($_SERVER["REQUEST_URI"],"?")){

//yoyo推荐的使用分割获得数据,这里是获得省份名称

$province=explode("/",$_SERVER["REQUEST_URI"]);

$province=explode(".",$province[count($province)-1]);

$province=$province[0];

//被注释掉的是我自己写出来的正则,感觉写的不好,但效果等同上面

//preg_match('/[^/]+[.(html)]$/',$_SERVER["REQUEST_URI"],$pro);

//$province=preg_replace('/.html/','',$pro[0]);

$page="http://qq.ip138.com/weather/".$province."/index.htm";

//获取html数据之前先尝试打开页面,防止恶意输入地址导致出错

if (!@fopen($page, "r")) {

die("对不起,该地址不存在!<a href=javascript:history.back(1)>点击这里返回</a>");

exit(0);

}

$html = file_get_contents($page,'r');

$pattern="/五天天气趋势预报</B>(.*?)请输入输入市/si";

preg_match($pattern,$html,$pg);

echo "";

//正则替换,获取省份,城市

$p=preg_replace('//weather/(w+)/(w+).htm/', '$2.html?pro=$1', $pg[1]);

echo $p;

}

else {

//市,通过get传递省份

$pro=$_REQUEST['pro'];

$city=explode("/",$_SERVER["REQUEST_URI"]);

$city=explode(".",$city[count($city)-1]);

$city=$city[0];

//preg_match('/[^/]+[.(html)]+[?]/',$_SERVER["REQUEST_URI"],$cit);

//$city=preg_replace('/.html?/','',$cit[0]);

$page="http://qq.ip138.com/weather/".$pro."/".$city.".htm";

if (!@fopen($page, "r")) {

die("对不起,该地址不存在!<a href=javascript:history.back(1)>点击这里返回</a>");

exit(0);

}

$html = file_get_contents($page,'r');

$pattern="/五天天气趋势预报</B>(.*?)请输入输入市/si";

preg_match($pattern,$html,$pg);

echo "";

//获取真实的图片地址

$p=preg_replace('//image//', 'http://qq.ip138.com/image/', $pg[1]);

echo $p;

}

?>

【php file_get_contents函数轻松采集html数据】相关文章:

如何去掉文章里的 html 语法

用PHP编写PDF文档生成器

PHP中is_file()函数使用指南

php中file_exists函数使用详解

PHP_Flame(Version:Progress)的原代码

PHP4中实现动态代理

php动态函数调用方法

PHP 和 MySQL 基础教程(四)

php正则preg_replace_callback函数用法实例

PHP file_get_contents函数读取远程数据超时的解决方法

精品推荐
分类导航