源代码来自俺滴师父飘(http://www.piao2010.com).本程序读取weather.com.cn里的天气信息,然后通过飞信API发送短信。使用时只要触发该页面即可。今天试了通过PHP页面定时任务来实现自动发送,结果测试的时候设置的间隔是60秒,发往自己的手机,没想到很成功,但是常驻服务器内存停不下了,于是我的手机每隔一分钟就收到一条短信,最后只得联系空间商重启Apache进程。此时我已经收了100来条短信了~庆幸自己但是设的不是一秒一条~

      下面贴上源代码,注意使用UTF-8编码:

<?php  
ignore_user_abort(); // run script in background    
set_time_limit(0); // run script forever    
$interval=60*60*24; // 24小时后重复...    
do{    
$id = "101210501";//绍兴
$file = file_get_contents("http://www.weather.com.cn/html/weather/{$id}.shtml");//读取远程数据
preg_match_all("/<!--day 1-->(.*?)<div class="weatherYubao" id="weatherYubao2">/is",$file,$main_content);//取有价值的部分
$main_content = $main_content[0][0];
//明天数据
preg_match_all("/<!--day 2-->(.*?)<!--day 3-->/is",$main_content,$day2);
$day2 = $day2[0][0];
//print_r($day2);
$start = '<td width="15%" rowspan="2" class="t0" style="background:#f4f7fc;">';
$end = '</td>';
preg_match_all("/".$start."(.*?)".$end."/is",$day2,$tomorrow);
$tomorrow = trim(strip_tags($tomorrow[1][0]));//日期
$start2 = '<td width="15%">';
$end2 = '</td>';
preg_match_all("/".$start2."(.*?)".$end2."/is",$day2,$bttq2);
$bttq2 = $bttq2[0];
$start4 = '<td width="18%">';
$end4 = '</td>';
preg_match_all("/".$start4."(.*?)".$end4."/is",$day2,$tmp2);
$tmp2 = $tmp2[1][0];
$bttq2[3] = $tmp2;
foreach($bttq2 as &$value){
$value = trim(strip_tags($value)); 
}
$start3 = '<td>';
$end3 = '</td>';
preg_match_all("/".$start3."(.*?)".$end3."/is",$day2,$wstq2);
$wstq2 = $wstq2[0];
foreach($wstq2 as &$value){
$value = trim(strip_tags($value)); 
}
$str2 = "  ".$tomorrow." 白天:".$bttq2[3].",".$bttq2[0].",".$bttq2[1].",".$bttq2[2]." 夜间:".$wstq2[1].",".$wstq2[2].",".$wstq2[3].",".$wstq2[4]."。";
//echo $str2;
$url = "http://sms.api.bz/fetion.php?username=159XXXXXXXX&password=XXXXXXX&sendto=159XXXXXXXX&message=";//API接口:http://sms.api.bz/fetion.php
$url = $url.urlencode("欢迎使用手机短信天气预报服务! ".$str2."---服务热线:683771,此短信由程序自动发送,请勿回复! ");
$count = 1; //读取次数
$max_count = 3;//最多读取次数
while( ( $html = file_get_contents($url) ) === false  && $count <= $max_count ) {
	$count++;
}
if ( $html == "短信已提交到发送队列!" ) 
	echo "ok!";
else echo "failed!";
// add the script that has to be ran every 15 minutes here       
// ...    
  sleep($interval); // wait 15 minutes    
}while(true);   
?>
哟?不错哎 订阅小米的RSS Feeds 回去慢慢看^_^