php调用yahoo sina api 开发天气预报
现在的网站都会有一些服务性的东东。如日历,天气预报等等!由于google 永久性关闭了天气api 所以我又找了一个调用yahoo 和 新浪的天气预报 api。
yahoo 天气预报地址 http://developer.yahoo.com/weather/
废话不多说直接代码贴上:
<?php header ( 'Content-Type: text/html; charset = utf-8' ); class weather { static $url = 'http://xml.weather.yahoo.com/forecastrss?u=c&w='; static $city = 'Beijing'; //默认城市北京 这里要注意的是 city 要填拼音 我试过用中文有好几个地区都调用不到 static $weatherXML = ''; static $woeid_file = "woeid"; static $file_path = "data/"; /** * 获得远程xml并缓存到本地 */ static public function getXML($city = null) { if ($city != null){ self::$city = $city; } self::$weatherXML = self::$file_path . md5(self::$city) . '-weather.xml'; if (file_exists( self::$weatherXML )) { $fileTime = filemtime ( self::$weatherXML ); $stater = time () - $fileTime - 60 * 60 * 2; if ($stater > 0) { return true; } } //获取woeid $woeid = self::getWOEID(); self::$url = self::$url . $woeid[0]; //获取当天 天气 $XML = self::vget(self::$url); //保存当天 天气到文件 self::cacheXML($XML); self::analysisXML($XML); } static public function analysisXML($simple) { $p = xml_parser_create(); xml_parse_into_struct($p, $simple, $vals, $index); xml_parser_free($p); //本周天气 $weekindex = $index['YWEATHER:FORECAST']; $week = array(); foreach($weekindex as $k=>$v){ $week[$k] = $vals[$v]['attributes']; } unset($index); unset($vals); print_r($week); /* <yweather:forecast day="Wed" date="18 Sep 2013" low="20" high="32" text="Sunny" code="32"/> * day 星期 * date 日期 * low 最低温度 * high 最高温度 * test 天气状态 * code 天气图标 */ } /* * 取得地区WOEID码 */ static private function getWOEID(){ static $woeid = array(); if(isset($woeid[self::$city])){ return $woeid[self::$city]; } if (file_exists( self::$file_path . self::$woeid_file )) { $woeidSTR = file_get_contents(self::$file_path . self::$woeid_file); $woeid = json_decode($woeidSTR , true); if(isset($woeid[self::$city])){ return $woeid[self::$city]; } } $geoPlaces = "http://query.yahooapis.com/v1/public/yql?q=select%20woeid%20from%20geo.places%20where%20text='".self::$city."%20CH'"; $XML = simplexml_load_file( $geoPlaces ); if(isset($XML->results->place[0])){ $rs = $woeid[self::$city] = $XML->results->place[0]->woeid; //保存到文件 $woeidSTR = json_encode($woeid); file_put_contents(self::$file_path . self::$woeid_file, $woeidSTR); return $rs; }else{ //如果找不到城市 woeid 默认城市就改为 北京 self::$city = "Beijing"; return self::getWOEID(); } } /** * 创建xml缓存 * @param $contents 要缓存的内容 */ static private function cacheXML($contents) { $contents = str_ireplace ( '<?xml version="1.0"?>', "<?xml version=\"1.0\"?> \n", $contents ); $contents = mb_convert_encoding ( $contents, 'utf-8', 'gbk' ); file_put_contents ( self::$weatherXML, $contents ) or die ( '没有写权限' ); } /** * 模拟获取内容函数 * @param type $url * @return type */ static private function vget($url) { <br /> $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; $curl = curl_init (); // 启动一个CURL会话 curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址 curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查 curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在 curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent ); // 模拟用户使用的浏览器 @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转 curl_setopt ( $curl, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的Post请求 curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环 curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 显示返回的Header区域内容 curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回 $tmpInfo = curl_exec ( $curl ); // 执行操作 if (curl_errno ( $curl )) { curl_close ( $curl ); // 关闭CURL会话 die('Errno' . curl_error ( $curl )) ; } curl_close ( $curl ); // 关闭CURL会话 return $tmpInfo; // 返回数据 } } weather::getXML("Changsha");
新浪 http://php.weather.sina.com.cn
<?php header ( 'Content-Type: text/html; charset = utf-8' ); class weather { static $url = 'http://php.weather.sina.com.cn/xml.php?password=DJOYnieT8234jlsK&day=0&city=';//password是固定值 static $city = '%B1%B1%BE%A9'; //默认城市北京 static $weatherXML = ''; static $file_path = "data/"; /** * 获得远程xml并缓存到本地 */ static public function getXML($city = null) { if ($city != null){<br /> $city = mb_convert_encoding ( $city, 'gbk', 'utf-8' ); self::$city = urlencode($city); } self::$weatherXML = self::$file_path . md5(self::$city) . '-weather.xml'; if (file_exists( self::$weatherXML )) { $fileTime = filemtime ( self::$weatherXML ); $stater = time () - $fileTime - 60 * 60 * 2; if ($stater > 0) { return true; } } $contents = self::vget( self::$url . self::$city ); self::cacheXML ( $contents ); self::analysisXML(); } /** * 解析xml */ static public function analysisXML() { $XML = simplexml_load_file(self::$weatherXML ); print_r($XML); } /** * 创建xml缓存 * @param $contents 要缓存的内容 */ static private function cacheXML($contents) { $contents = str_ireplace ( '<?xml version="1.0"?>', "<?xml version=\"1.0\"?> \n", $contents ); file_put_contents ( self::$weatherXML, $contents ) or die ( '没有写权限' ); } /** * 模拟获取内容函数 * @param type $url * @return type */ static private function vget($url) { <br /> $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; $curl = curl_init (); // 启动一个CURL会话 curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址 curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查 curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在 curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent ); // 模拟用户使用的浏览器 @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转 curl_setopt ( $curl, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的Post请求 curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环 curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 显示返回的Header区域内容 curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回 $tmpInfo = curl_exec ( $curl ); // 执行操作 if (curl_errno ( $curl )) { curl_close ( $curl ); // 关闭CURL会话 die('Errno' . curl_error ( $curl )) ; } curl_close ( $curl ); // 关闭CURL会话 return $tmpInfo; // 返回数据 } } weather::getXML();

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7
