首次写PHP全程记录

    公司客户端需要一个“气温累积”,那么这个气温从哪来呢,经查,我决定用中国气象网的接口得到。即:1、在服务器上每天定时或手动读取中国气象网的接口得到每个城市的该日json;2、解析并保存到mysql;3、客户端访问mysql得到数据集。

    以上是思路。我决定用一下PHP。

    步骤如下:

一、安装swampServer

二、新建数据库:单击右下角的绿色小图标,打开其中的phpMyAdmin,我新建了数据库weather,两个表citycode和weather,SQL语句如下(初步是这样,有预留):

CREATE TABLE `citycode` (
  `cityname` text NOT NULL,
  `citycode` varchar(9) NOT NULL,
  `bakup1` int(11) NOT NULL,
  `bakup2` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT=城市代码;

-- --------------------------------------------------------

CREATE TABLE `weather` (
  `citycode` varchar(9) NOT NULL,
  `date` date NOT NULL,
  `high` int(11) NOT NULL,
  `low` int(11) NOT NULL,
  `weather` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

三、调试好后,在根目录www下新建文件index.php,先测试连接数据库,代码如下

<?php
    echo "嗯";
    $con = mysql_connect("localhost", "root", "");
    if (!$con) 
        {
            die(‘Could not connecct:‘ . mysql_error());
        }
    echo "connect successfully!";
    mysql_close($con);
?>

四、运行了一下,成功,说明mysql连上了。

下面继续。

五、下面,读取天气json,从网上找了一段代码并执行。index.php内的代码变为:

 1 <?php
 2     echo "嗯";
 3     $con = mysql_connect("localhost", "root", "");
 4     if (!$con) 
 5         {
 6             die(‘Could not connecct:‘ . mysql_error());
 7         }
 8     echo "connect successfully!";
 9     mysql_close($con);
10     
11     $requesturl="http://www.weather.com.cn/data/sk/101010100.html";
12     $ch = curl_init();
13     // 设置URL和相应的选项
14     curl_setopt($ch, CURLOPT_URL, $requesturl);
15     curl_setopt($ch, CURLOPT_HEADER, 0);
16     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
17     $info=curl_exec($ch);
18     // 关闭cURL资源,并且释放系统资源
19     curl_close($ch);
20     echo "curl end and then json decode";
21     //对返回的json串进行decode,分解后与下面的数组一起合成json串
22     $info=json_decode($info,true);
23     echo mb_convert_encoding($info[‘weatherinfo‘][‘city‘],‘gb2312‘,‘UTF-8‘);
24 ?>

这里要注意一下,中间出过一个错误,要打开php的curl库。打开方法就在右下角绿色图标的php扩展选项里,勾上php_curl。

下面,我要处理完所有的天气预报信息,并保存到mysql中,同时,要得到所有城市的天气预报,后续将会把代码及修改后的mysql数据库结构发上来,稍等一会。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。