zoukankan      html  css  js  c++  java
  • PHP API获取天气预报,以及使用飞信API,给好友发

    API获取天气预报,以及使用飞信API,给好友发送短信 
    加上计划任务,就可以持续每天自动发送天气预报给自己和亲人啦。。。

     

    <?php
    ##########
    # jiam 2012/12/5
    # 1113160783@qq.com
    #自动发送飞信
    #中间涉及到飞信接口
    #天气预报API
    #以及城市代码
    ##########
    #101180101是郑州城市代码
    #101180301是新乡城市代码
    $url='http://m.weather.com.cn/data/101180101.html';
    $xinxiang='http://m.weather.com.cn/data/101180301.html';
    $w=curl($url);
    $weather=json_decode($w);
    $weatherinfo=object_to_array($weather);
    $info=$weatherinfo['weatherinfo'];
    $str=$info['date_y'].','.$info['week'].'。'.$info['city'].'今天气 温:'.$info['temp1'].',天气:'.$info['weather1'].'有'.$info['wind1'].',风 力:'.$info['fx1'].',穿衣建议:'.$info['index_d'].$info['index48_d'];
     
    $feixin='http://wjima.a173.cnaaa4.com/feixin/str.php';
    $postArray['userName']='手机号';//飞信账号
    $postArray['password']='密码';//飞信密码
    $postArray['content']=$str;//发送内容
    $postArray['other']='接收方手机号';//接收方手机号,无此参数,默认给自己发送
     
    $send=curl($feixin,$postArray);
     
    print_r($send);die();
     
    function curl($url, $postFields = null)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FAILONERROR, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //https 请求
    if(strlen($url) > 5 && strtolower(substr($url,0,5)) == "https" ) {
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    }
     
    if (is_array($postFields) && 0 < count($postFields))
    {
    $postBodyString = "";
    $postMultipart = false;
    foreach ($postFields as $k => $v)
    {
    if("@" != substr($v, 0, 1))//判断是不是文件上传
    {
    $postBodyString .= "$k=" . urlencode($v) . "&"; 
    }
    else//文件上传用multipart/form-data,否则用www-form-urlencoded
    {
    $postMultipart = true;
    }
    }
    unset($k, $v);
    curl_setopt($ch, CURLOPT_POST, true);
    if ($postMultipart)
    {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
    }
    else
    {
    curl_setopt($ch, CURLOPT_POSTFIELDS, substr($postBodyString,0,-1));
    }
    }
    $reponse = curl_exec($ch);
     
    if (curl_errno($ch))
    {
    throw new Exception(curl_error($ch),0);
    }
    else
    {
    $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if (200 !== $httpStatusCode)
    {
    throw new Exception($reponse,$httpStatusCode);
    }
    }
    curl_close($ch);
    return $reponse;
    }
    function object_to_array($obj)
    {
    $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
    foreach ($_arr as $key => $val)
    {
    $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
    $arr[$key] = $val;
    }
    return $arr;
    }
    ?>
  • 相关阅读:
    【Oracle】ORA-00257:archiver error. Connect internal only, until freed 错误的处理方法
    【SQL】区分新来顾客和再访顾客
    【Xcelsius】在PPT中嵌入水晶易表Xcelsius2008仪表盘
    【SAP BO】【WEBI】【转】Webi实现动态选择度量
    【转】Xcelsius2008 水晶易表问题 部分汇总
    如何进行有效的需求调研
    实现数据仓库的七个步骤、七个禁忌、七种思路
    UTC日期转时间戳
    WIN10下命令行禁用编辑模式
    让socket端口不被子进程继承
  • 原文地址:https://www.cnblogs.com/xingmeng/p/2890836.html
Copyright © 2011-2022 走看看