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

PHP
PHP memcache扩展的三种安装方法
PHP 判断常量,变量和函数是否存在
PHP session有效期问题
PHP 读取文件的正确方法
apache2.2.4+mysql5.0.77+php5.2.8安装精简
PHP 字符串编码截取函数(兼容utf-8和gb2312)
PHP 错误之引号中使用变量
php 购物车的例子
PHP 身份证号验证函数
php结合飞信 免费天气预报短信
PHP SQLite类
PHP 在线翻译函数代码
PHPMyAdmin 快速配置方法
PHP 编写的 25个游戏脚本
php 购物车实例(申精)
PHP获取当前文件所在目录 getcwd()函数
DISCUZ 论坛管理员密码忘记的解决方法
PHP 采集心得技巧
抓取YAHOO股票报价的类
PHP 模拟登陆MSN并获得用户信息

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 123 ::
收藏到网摘: 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
完成。