动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 改进后的《自动显示天气预报》小程序

作者来源: 
阅读 数 348 人次 , 2006-3-29 4:08:00 


这次改进,主要是增加了图象的获取,并提供了一个比较完整的获取远端文件的函数。具体代码如下:
<?
$fcont=file("http://www.bjmb.gov.cn/today.asp");
$arr=array();
for($i=0;$i<count($fcont);$i++){
$tmp=$fcont[$i];
$tmp=ereg_replace("<br>"," ",$tmp);
if(!strstr(strtolower($tmp),"img")){
$tmp=trim(strip_tags($tmp));
} else {
$st=ereg_replace("><",">⌒<",$tmp);
$stt=split("⌒",$st);
foreach($stt as $key => $value){
if(strstr($value,"img") ){
$tmp=$value;
if(strstr($tmp,"bt9.jpg") || strstr($tmp,"colline.gif")){
$tmp="";
}else{
$tmp=ereg_replace("\"","",$tmp);
$st=split("src=",$tmp);
$st1=split(" ",$st[1]);getpic("http://www.bjmb.gov.cn/$st1[0]","image");
if(count($st)>2){
$st2=split(" ",$st[2]);getpic("http://www.bjmb.gov.cn/$st1[0]","image");
}
$tmp=ereg_replace("src=","width=30 height=30 align=absmiddle src=",$tmp);
}
}
}
}
if(trim($tmp)!="" && trim($tmp)!=" ") $arr[]=$tmp;
}
$yb=array();
for($i=2;$i<count($arr)-6;$i++){
$yb[]=$arr[$i];
}
?>
<br>
<script language="javascript">
<!--
syb="";
<?
$exp="-3-7-9-14-18-20-25-";
for ($i=1;$i<count($yb);$i++){
if (!strstr($exp,"-".(string)($i+1)."-")){
?>
syb=syb+'<?=$yb[$i];?> ';
<?}}?>
document.write("<?=$yb[0]?>"+":");
document.write("<marquee width=400 align=middle scrollamount=5 scrolldelay=200>"+syb+"预报</marquee>");
//-->
</script>
<?
function getpic($url,$dir){
$tmp=split("/",$url);
$fname=$tmp[count($tmp)-1];
if(strstr($dir,"\\")){
if(substr($dir,-2)=="\\") $file=$dir.$fname;else $file=$dir."\\".$fname;
}else{
if(substr($dir,"/")){
if(substr($dir,-1)=="/") $file=$dir.$fname;else $file=$dir."/".$fname;
}
else{
return ;
}
}
if(!(file_exists("$dir") && is_dir("$dir"))) mkdir($dir,0777);
if(file_exists($file)) return ;
$fpo=fopen($file,"wb");
if(!$fpo) return ;
$num=0;
do{
$num++;
$fpi=fopen($url,"r");
}while(!$fpi && $num<3);
if(!fpi) return ;
while(!feof($fpi)){
$cont=fread($fpi,128);
fwrite($fpo,$cont,128);
}
fclose($fpi);
fclose($fpo);
}
?>

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:用PHP和MySQL保存和输出图片
· 下一篇:一个获取远端文件的函数(Linux和Windows均适用)
· 简单的页面缓冲技术
· 用PHP实现通过Web执行C/C++程序
· 揭开正则表达式语法的神秘面纱
· 从C/C++迁移到PHP——判断字符类型的函数
· 正则表达式系统教程(六)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077