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

 更新时间:2009年05月07日 00:28:37   作者:  
最近发现了一个飞信的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("&nbsp;","",$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
完成。

相关文章

  • 浅谈laravel aliases别名的原理

    浅谈laravel aliases别名的原理

    今天小编就为大家分享一篇浅谈laravel aliases别名的原理,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 解决laravel查询构造器中的别名问题

    解决laravel查询构造器中的别名问题

    今天小编就为大家分享一篇解决laravel查询构造器中的别名问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • destoon数据库表说明汇总

    destoon数据库表说明汇总

    这篇文章主要介绍了destoon数据库表说明汇总,可以方便针对destoon进行二次的时候查询使用,需要的朋友可以参考下
    2014-07-07
  • PHP使用php-resque库配合Redis实现MQ消息队列的教程

    PHP使用php-resque库配合Redis实现MQ消息队列的教程

    这篇文章主要介绍了PHP使用php-resque库配合Redis实现MQ消息队列的教程,将展示php-resque的安装部署及一个Worker队列的运行过程,需要的朋友可以参考下
    2016-06-06
  • Yii配置文件用法详解

    Yii配置文件用法详解

    这篇文章主要介绍了Yii配置文件用法,以实例形式较为详细的分析了项目开发中的控制器、项目名、pathinfo、日志等的配置技巧,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • 详解thinkphp5+swoole实现异步邮件群发(SMTP方式)

    详解thinkphp5+swoole实现异步邮件群发(SMTP方式)

    这篇文章主要介绍了详解thinkphp5+swoole实现异步邮件群发(SMTP方式),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Thinkphp 框架扩展之标签库驱动原理与用法分析

    Thinkphp 框架扩展之标签库驱动原理与用法分析

    这篇文章主要介绍了Thinkphp 框架扩展之标签库驱动,结合实例形式分析了Thinkphp标签库驱动扩展相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 分享个简单易懂且非常有用的laravel事件

    分享个简单易懂且非常有用的laravel事件

    这篇文章主要给大家介绍了一个简单易懂并且非常有用的laravel事件,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • PHP实现赛邮SUBMAIL简单易用短信通知实例

    PHP实现赛邮SUBMAIL简单易用短信通知实例

    这篇文章主要介绍了使用PHP实现赛邮SUBMAIL的简单易用短信通知实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • yii2实现Ueditor百度编辑器的示例代码

    yii2实现Ueditor百度编辑器的示例代码

    这篇文章主要介绍了yii2实现Ueditor百度编辑器的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论