郝二偉,張家偉,金衛(wèi)同(中國洛陽電子裝備試驗中心,洛陽 471003)
基于百度云的天氣預報軟件的設計
郝二偉,張家偉,金衛(wèi)同
(中國洛陽電子裝備試驗中心,洛陽 471003)
1.2PHP語言
天氣信息查詢是人們?nèi)粘9ぷ魃钪薪?jīng)常使用的。公眾能夠借助這些軟件,在第一時間方便且快捷地獲取最新的氣象預報信息,以便提前預防?;ヂ?lián)網(wǎng)上,百度、雅虎等公司都提供了天氣預報的API接口,供軟件開發(fā)人員進行開發(fā)調(diào)用。經(jīng)過比較,百度開發(fā)云提供的天氣預報API在國內(nèi)城市天氣預報上做的信息詳實、更新速度快,比較實用。本文基于百度云,設計開發(fā)了天氣預報查詢軟件。
1.1JSON數(shù)據(jù)
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition-December 1999)的一個子集。JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣 (包括C、C++、C#、Java、JavaScript、Perl,Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言,易于人閱讀和編寫,同時也易于機器解析和生成(網(wǎng)絡傳輸速度快)[1]。JSON為數(shù)據(jù)的表示提供了新的方法,為開發(fā)提供了多重原則,在輕量級數(shù)據(jù)處理的時候,是非常方便的[2]。
PHP是Hypertext Preprocessor(超文本預處理器)的縮寫,是一種服務器端、跨平臺、面向?qū)ο?、HTML嵌入式的腳本語言。PHP獨特的語法混合了C、Java、Perl的特點,是一種被廣泛應用的開源式的多用途腳本語言[3]。它可以比CGI或者Perl更快速地執(zhí)行動態(tài)網(wǎng)頁。用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快。
1.3cURL庫
cURL主要用于網(wǎng)頁數(shù)據(jù)的抓取。PHP支持的由Daniel Stenberg創(chuàng)建的libcurl庫允許與各種的服務器使用各種類型的協(xié)議進行連接和通信。libcurl目前支持HTTP、HTTPS、FTP、Gopher、Telnet、Dict、File和LDAP協(xié)議。libcurl同時也支持HTTPS認證、HTTP Post、HTTP Put、FTP上傳 (這個也能通過PHP的FTP擴展完成)、HTTP基于表單的上傳、代理、cookies和用戶名+密碼的認證。PHP中使用cURL函數(shù)實現(xiàn)Get和Post請求的方法,該函數(shù)在PHP 4.0.2版本以后內(nèi)置于PHP中。
2.1使用說明
百度開發(fā)云平臺提供了眾多的API接口,其天氣API可根據(jù)經(jīng)緯度/城市名查詢天氣的結(jié)果。用戶使用前需要注冊賬號,獲取key。網(wǎng)址為:
http://api.map.baidu.com/telematics/v3/weather?location=城市名&output=json&ak=yourkey
參數(shù)定義及描述如表1所示。
表1 參數(shù)定義及描述
2.2返回結(jié)果
由于XML的數(shù)據(jù)對象網(wǎng)絡傳輸具有良好的可讀性與可擴展性,但受到了瀏覽器和解析方式的限制。JSON是一種更加簡潔的對象封裝格式[4]。JSON數(shù)據(jù)量小,相應的在網(wǎng)絡上傳輸速度快,因而更適合移動Web的開發(fā)。在JSON中參數(shù)名稱及相應含義如表2所示。
返回的JSON數(shù)據(jù)如下:
表2 JSON中參數(shù)名稱及含義
3.1軟件設計
PHP服務器通過獲取百度API返回的天氣信息JSON數(shù)據(jù),進行JSON解析后,轉(zhuǎn)換為數(shù)組,然后從數(shù)組中提取數(shù)據(jù)。
3.2天氣信息的獲取
實現(xiàn)代碼如下:
//獲取指定網(wǎng)站返回的數(shù)據(jù)
3.3JSON數(shù)據(jù)解析
實現(xiàn)代碼如下:
//進行json數(shù)據(jù)解析
網(wǎng)上各大云服務商提供的眾多API接口,為程序開發(fā)提供了極大便利。本文利用百度云的天氣預報API,設計基于PHP和JSON技術的天氣預報軟件,實現(xiàn)了基本的天氣預報功能。借助PHP在Web開發(fā)中的優(yōu)勢,在天氣預報上可以進一步結(jié)合數(shù)據(jù)庫、繪圖等技術,拓展功能。
[1]JSON.http://baike.baidu.com/view/136475.htm,百度百科.
[2]王魁生,王曉波.利用JSON進行網(wǎng)站客戶端與服務器數(shù)據(jù)交互[J].軟件導刊,2010(3):147~149
[3]潘欣華,李慧,劉欣等.PHP快速入門及項目實戰(zhàn)[M].北京:清華大學出版社,2012
[4]胡曉鋒.JSON與XML在網(wǎng)絡數(shù)據(jù)傳輸中的應用分析[J].電腦編程技巧與維護,2010(10):77~78
API;PHP;JSON
Design of Weather Forecast Query Software Based on Baidu Cloud
HAO Er-wei,ZHANG Jia-wei,JIN Wei-tong
(Luoyang Electronic Equipment Test Center of China,Luoyang 471003)
1007-1423(2015)10-0074-04
10.3969/j.issn.1007-1423.2015.10.021
郝二偉(1982-),男,河南濟源人,在讀碩士,研究方向為計算機應用技術、軟件工程
張家偉(1987-),女,天津人,女,碩士,助理工程師,研究方向為電子與通信工程
金衛(wèi)同(1983-),男,河北滿城人,碩士,工程師,研究方向為計算機與通信
2015-03-03
2015-03-13
查詢天氣預報的軟件一般要求快速、準確而且小巧。通過百度云平臺,利用PHP和JSON技術,設計一款方便快捷的天氣預報查詢軟件,充分體現(xiàn)出PHP在Web開發(fā)中的優(yōu)勢,即開源、代碼運行快、效率高等,除查詢?nèi)掌?、未?天天氣情況和穿衣指數(shù)外,此軟件可結(jié)合數(shù)據(jù)庫和繪圖等技術,進一步拓展功能。
API;PHP;JSON
Software or plug-in for weather forecast requires fast,exact and small.Based on Baidu Cloud,designs a convenient and fast software for weather forecast query through PHP and JSON,which reflects the advantages of PHP in Web page,namely open source,fast speed and high efficiency.Besides date query,weather forecast for the next three days and dressing index,the software can be combined with other technologies such as database and graphics technology to future expand other functions.