存档

2009年7月 的存档

PHP+飞信实现免费定时发送天气预报短信

2009年7月23日 12 条评论

众所周知,用飞信可以免费给好友发送手机短信.前几天,我在PHPChina的论坛上看到了Hellex写的” Fetion class v0.1”,于是便产生了利用飞信实现免费天气预报短信的想法.

具体的实现方法是:
1.解析中国气象网的天气预报,用正则表达式,从中提取相关天气信息.
2.利用系统自带的计划任务,定时运行程序,发送短信.

源码下载:weather.zip
注:PHP需要支持libcurl
update1:修改了weather.php,修复了不同时段取天气数据出错的问题.(2009-07-24更新)
update2:修改了weather.php,修复了由于天气预报网页改版,取数据出错的问题.(2009-10-16更新)
update3:修改了weather.php,采用其他方式获取json格式的天气预报,php必须支持json_decode函数.(2009-11-08更新)

这里主要说一下如何用计划任务实现定时运行.

在windows环境的实现方法:
1.    在记事本中输入以下内容,保存为.bat扩展名的文件:
@ echo off
C: \php\php D: \ weather \weather.php
exit

其中, C: \php\php为php.exe所在的完整路径(.exe省略了), D: \ weather \weather.php为天气预报程序的完整路径.
2.    以 windows server 2003为例:
在控制面板中, 双击”任务计划”,运行任务计划程序;
然后再双击”添加任务计划”,弹出”任务计划向导窗口”;
点击”下一步”后,会出现程序列表,点击”浏览”,定位到上一步建立的程序,然后再点击”下一步”;
再选择执行该任务的时间(每天),然后再点击”下一步”;
将任务运行的起始时间和日期中设置为每天的18:00,再点击”下一步”;
然后再输入系统用户名和密码,点击”下一步”,即可完成任务计划向导.

在linux环境的实现方法(这里以DreamHost虚拟主机为例):
1.    通过FTP将程序上传到DreamHost的空间中.
2.    进入DreamHost的Web Panel,点击左侧中的”Cron Jobs”.
3.    点击”Add New Cron Job”,打开设置页面.
4.    在user中选择可以访问该程序的SSH帐号,Title任意输入,在”Command  to run”中输入以下内容:

/dh/cgi-system/php5.cgi /home/username/mydomain.com/weather.php

其中: /dh/cgi-system/php5.cgi为php5.cgi的完整路径, /home/username/mydomain.com/weather.php为该天气预报程序的完整路径,username为该空间的FTP帐号, mydomain.com/weather.php为该文件的完整路径(均可以通过php像个函数查询得到).

5.    在”When to run”的下拉框中,选择”Custom”(自定义).
6.    如果需要在每天傍晚18:00发送一次,可以在Minutes的下拉框中选择”Selected Minutes”,然后选择”00”(按住ctrl可以多选),在Hours的下拉框中选择”Selected Hours”,然后选择”03”(Dreamhost服务器时间和北京时间相差15小时,03相当于北京时间18点,按住ctrl可以多选),其他保持默认.
7.    设置完成后,点击”Add”即可完成设置.

至于具体的php代码实现,可以参考上面的源代码压缩包,均带有注.在这里感谢Hellex提供的 Fetion class.

update2:修改了weather.php,修复了由于天气预报网页改版,取数据出错的问题.(2009-10-16更新)
分类: PHP 标签: ,
SEO Powered by Platinum SEO from Techblissonline
Get Adobe Flash player