取得新浪天气预报网页的城市当日信息.
共有两个文件:
tianqi.html:利用下拉菜单跳转到网页获得天气预报信息,返回信息到浮动帧内;
<html>
<head></head>
<script>
<!--
function go(){
var url2='http://php.weather.sina.com.cn/search.php?city='
window.status='搜寻中...'; //隐藏状态栏信息
var a=document.form.city.selectedIndex;
var city1=document.form.city.options[a].value;
document.form.url.value=url2+city1;
//window.location=url+city1;
document.form.submit();
}
-->
</script>
<body>
<center>
<iframe width="300" height="70" name="frame" src="get_tianqi.php" frameborder="1"></iframe>
<form action="get_tianqi.php" method="post" name="form" target="frame">
<select name="city" onchange="go()">
<option value="">请选择一个城市</option>
<option value="广州">广州</option>
<option value="肇庆">肇庆</option>
<option value="湛江">湛江</option>
<option value="深圳">深圳</option>
<option value="东莞">东莞</option>
<input type="hidden" name="url" value="">
</select>
</form>
</center></body></html>
get_tianqi.php:取得天气预报信息
<?php
/* 此程序是从新浪网的天气网页http://php.weather.sina.com.cn/search.php?city=中取得某个城市的天气预报*/
ob_start(); //启动输出缓冲
function request_url($url,$method='POST') {
$url = parse_url($url); //解析url地址,取得host,path,port,query等
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
//连接服务器
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "不能连接".$url['host']."服务器";
//发送请求
fputs($fp, sprintf("$method %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Connection: close\n\n");
//获得请求后返回的内容
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\.. 200", $line)) return;
$results = "";
while(!feof($fp)) {
$line = fgets($fp,1024);
$results .= $line;
}
fclose($fp);
return $results;
}
//获得从其它网页传送过来的url(带查询字串)
if (!$_REQUEST['url']) {
echo "请添加一个url";
exit;
}else{
$url=$_REQUEST['url'];
}
$content=request_url($url); //取得请求后的网页内容
$start=strpos($content,"<!-- 天气状况 begin -->");//取得天气预报的截取段
$end=strpos($content,"<!-- 天气状况 end -->");
$len=$end-$start;
$b=substr($content,$start,$len); //截取得指定内容
//从上面的截取段中取得城市今日天气预报的截取段
$sub_start=strpos($b,"<div class=\"City_Data\">");
$sub_end=strpos($b,"<div class=\"Weather_SM\">");
$len2=$sub_end-$sub_start;
$c=substr($b,$sub_start,$len2);
$d=split("\n",$c); //去掉换行符
//print_r($d);
$e="";
foreach ($d as $key=>$value){
$value=strip_tags($value); //去掉html标记
$e.=$value;
if ($key==2) {
$e.="<br>";
}
}
echo $e;
ob_end_flush();
?>
分享到:
相关推荐
在`WeatherForecast.php`中,开发者可能写了一个函数来获取特定城市的天气数据,通过发送HTTP请求到API接口,解析返回的JSON或XML数据,提取出所需的信息,如温度、湿度、风速等。 邮件发送部分,文件`testmail....
### 使用fsockopen获取网页内容的实例 在使用fsockopen函数获取网页内容之前,需要确保PHP的配置文件php.ini中允许URL包含文件的选项`allow_url_fopen`是开启的。这样fsockopen函数才能正常工作。 接下来,我们来...
### fsockopen函数详解 在PHP中,`fsockopen`是一个非常强大的函数,用于创建一个网络连接(套接字)到指定的主机和端口。这个函数在处理网络通信时特别有用,尤其是在进行HTTP请求、FTP操作或任何需要与远程服务器...
这篇博客主要探讨了PHP中的文件操作函数,通过学习这些函数,开发者可以高效地处理服务器上的文件系统。下面我们将深入探讨其中的关键知识点。 1. **文件读写** PHP提供了多种文件读写函数。`file_get_contents()`...
本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下:$post =1; $url = parse_url($url); $host =’//www.jb51.net’; $path ...
下载此文件,解压并上传到网站源码根目录。然后访问这个文件【例如您网站的源码是直接放在abc.com的根目录,则访问http://abc.com/pfsockopen.php】,直接点【开始执行替换操作】,即可。
网络通信方面,`fsockopen()`用于创建socket连接,`file_get_contents()`可以方便地从URL获取内容。 在处理数组时,`array_push()`和`array_pop()`分别用于在数组末尾添加和删除元素,`array_merge()`用于合并数组...
《PHP函数库查询辞典》是一部详尽的资源,旨在为PHP开发者提供全面的函数参考。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域中占据重要地位。其强大的函数库是其灵活性和功能丰富...
二、如何解决fsockopen函数被禁用1、如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen。具体操作:搜索程序中的字符串 fsockopen( 替换为 pfsockopen( 。示例如下修改前:$fp = ...
**PHP函数参考** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发。它能够嵌入到HTML中,用于增加动态交互性。PHP提供了丰富的内置函数,使得开发者能够轻松地处理各种任务,如数据...
"PHP上百个常用功能函数.zip"这个压缩包显然包含了众多实用的PHP函数和方法,旨在帮助开发者在日常工作和学习中提升效率。下面将详细讨论一些PHP中常见的功能函数,这些函数通常会在各种场景下被广泛应用。 1. **...
**PHP函数手册API中文版**是为中文使用者提供的PHP编程参考文档,包含了PHP语言中所有内置函数、类、接口和常量的详细说明。这个手册不仅提供了全面的函数描述,还具备搜索功能,使得开发者在编写代码时能够快速查找...
在PHP编程中,`fsockopen`函数是一个非常重要的网络通信工具,它允许开发者通过创建一个到指定主机的套接字连接来实现低级别的网络I/O操作。本示例主要探讨如何利用`fsockopen`进行GET和POST请求,以及处理文件上传...
在PHP编程中,fsockopen是一个用于打开网络套接字连接的函数,允许用户与远程服务器进行基于TCP/IP的通信。这个函数非常有用,特别是在需要进行HTTP或其他协议通信时。本文将详细介绍fsockopen的基本用法,并通过...
在PHP编程中,`fsockopen` 是一个用于创建网络连接的函数,它允许开发者直接通过Socket接口与服务器进行通信,比如HTTP、FTP等协议。本篇文章将深入探讨`fsockopen`函数及其在实际应用中的例子。 首先,为了使用`...
【PHP函数参考大全】是PHP开发者的重要参考资料,它包含了PHP编程语言中广泛使用的各种内置函数、类和接口的详尽信息。这份资源由明日科技出版,人民邮电出版社发行,旨在帮助开发者深入理解和高效利用PHP进行网站...
在提供的代码中,我们看到一个名为`getFileSize()`的PHP函数,它通过HTTP协议与远程服务器通信,从而获取指定URL的文件大小。下面我们将详细探讨这个函数的工作原理及其相关的知识点。 首先,`getFileSize()`函数...