当前位置: 首页 > 图文教程 > 网络编程 > PHP > php结合飞信 免费天气预报短信

PHP
一贴学会PHP 新手入门教程
用PHP的ob_start() 控制您的浏览器cache
谈谈新手如何学习PHP 默默经典版本
黑夜路人出的几道php笔试题
一些 PHP 管理系统程序中的后门
用php获取本周,上周,本月,上月,本季度日期的代码
PHP 简单数组排序实现代码
PHP 多维数组排序实现代码
php 全局变量范围分析
php_xmlhttp 乱码问题解决方法
PHP 数组学习排序全接触
php Sql Server连接失败问题及解决办法
PHP 翻页 实例代码
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
PHP 5.3.0 安装分析心得
php 生成WML页面方法详解
php 取得瑞年与平年的天数的代码
php empty函数 使用说明
php natsort内核函数浅析
PHP 源代码分析 Zend HashTable详解

PHP 中的 php结合飞信 免费天气预报短信


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 137 ::
收藏到网摘: n/a

最近发现了一个飞信的API接口,为了好好利用这个资源制作了这个天气预报短信通知。 开始教你怎么弄
一、需要有一个PHP环境。为了图省事下载APMServ软件快速搭建PHP环境
二、下载天气预报短信通知PHP程序点这里下载代码
三、修改PHP程序配置
用记事本打开WeatherForecast.php文件
复制代码 代码如下:

<?
/**
* 飞信通知天气预报
* 2009-4-23
*/
//禁止执行时间限制
set_time_limit (0);
//设置MB编码
mb_internal_encoding("GB2312");
/**
* 采集新浪天气预报信息
*
* @param string $city 城市名称
* @return unknown
*/
function getWF($city){
if(empty($city)) return "";
$wf=@file_get_contents('http://php.weather.sina.com.cn/search.php?city='.urlencode($city).'&f=1&dpc=1');
if (empty($wf)){
return "";
}
//截取相关信息
$return = "";
$star=strpos($wf,"<div class=\"blk-s3\">");
$return = substr($wf,$star,1000);
$end2=strpos($return,"<!-- box end-->");
$return = strip_tags(substr($return,0,$end2));

//过滤
$return = str_replace(" ","",$return);
$return = str_replace(" ","",$return);
$return = str_replace("\t","",$return);
$return = str_replace("\n","",$return);
$return = str_replace("℃","度",$return);
$return = str_replace("≤","",$return);
$return = trim(str_replace("\r",",",$return),",");
$return = str_replace("~","-",$return);
$return = str_replace(":",":",$return);
//返回值
return $return;
}
//飞信账号设置
$Fetion['user']='';
$Fetion['pass']='';
//设置天气预报城市
$citys[]=array('id'=>'bj','name'=>'北京');
$citys[]=array('id'=>'sy','name'=>'沈阳');
//北京手机号
$tel['bj'][]='137XXXXXXX';
$tel['bj'][]='137XXXXXXX';
//沈阳手机号
$tel['sy'][]='138XXXXXXXX';
$tel['sy'][]='137XXXXXXX';

if (is_array($citys)&&count($citys)>0){
//遍历城市
foreach($citys as $city){
//获取采集信息
$info=getWF($city['name']);
if (!empty($info)){
if (is_array($tel[$city['id']])&&count($tel[$city['id']])>0){
//大信息量处理
if (mb_strlen($info)>171){
$sum=ceil(mb_strlen($info)/168)-1;
for($i=0;$i<=$sum;$i++){
$starj=168*$i;
$qInfo=mb_substr($info,$starj,168);
$n=$i+1;
foreach($tel[$city['id']] as $val){
$url="http://sms.api.bz/fetion.php?username=".$Fetion['user']."&password=".$Fetion['pass']."&sendto=".$val."&message=".urlencode("天气预报[".$n."],"."明天".date("Y年m月d日")." ".$city['name']." ".$qInfo);
@file_get_contents($url);
}
}
}else{
foreach($tel[$city['id']] as $val){
$url="http://sms.api.bz/fetion.php?username=".$Fetion['user']."&password=".$Fetion['pass']."&sendto=".$val."&message=".urlencode("天气预报,明天".date("Y年m月d日")." ".$city['name']." ".$info);
@file_get_contents($url);
}
}
}
}
}
}
?>

修改
复制代码 代码如下:

//飞信账号设置
$Fetion['user']='自己的飞信账号手机号';
$Fetion['pass']='登录飞信密码';

你所在的城市修改
复制代码 代码如下:

//设置天气预报城市
$citys[]=array('id'=>'bj','name'=>'北京');

修改你要收到天气预报的手机号码可以为多个
复制代码 代码如下:

//北京手机号
$tel['bj'][]='137XXXXXXX';
$tel['bj'][]='137XXXXXXX';

这里的bj要与设置城市中的bj相同
好了配置完成可以测试执行一下是否可以收到天气预报信息。
四、设置每日定时发送
如果是WINDOWS环境设置计划任务
开始->程序->附近->系统工具->计划任务
添加任务 根据提示操作 重点在执行程序选择PHP.exe
选择你安装APMServ所在位子我本地的是D:\APMServ5.2.6\PHP\php.exe WeatherForecast.php绝对路径
我本地为 D:\APMServ5.2.6\PHP\php.exe D:\APMServ5.2.6\www\htdocs\WeatherForecast.php
完成。