微信公眾平台開發執行個體 PHP開發 代碼掛載SAE平台(六)星座物語 php解析xml檔案

來源:互聯網
上載者:User
今天帶來的是查詢每日星座運勢的功能,這個功能非常簡單,在微信平台上輸入星座名稱加一個標識符(例如“+”號),背景程式匹配這個標識符調用相應的功能。 具體流程上:1.使用字串分割函數explode(w3school)擷取到星座名稱。 2.將星座名稱匹配成相應的星座編號。 3.將這個編號傳遞給相應的API。 4.接收API返回的xml格式的資料。 5.處理xml格式的資料。 6.產生結果。 其中我再製作過程中由於是初學者,在第五步費了些功夫。API返回的xml格式為 [html]  <root>      <item>          <title>綜合運勢</title>          <rank>3</rank>          <value></value>      </item>      <item>          <title>愛情運勢</title>          <rank>3</rank>          <value></value>      </item>      <item>          <title>工作狀況</title>          <rank>2</rank>          <value></value>      </item>        ……      <item>2013-11-16</item>  </root>    首先我使用file_get_contents() 函數把API返回的資料檔案讀入一個字串中。然後用simplexml_load_string() 函數把 XML 字串載入對象中。然後再使用這個對象讀取每個xml標籤中的資料,但這裡我遇到了一個問題,返回的xml格式的檔案都是[html] <item>             <title>……</title>             <rank>……<rank>             <value>……<value>  </item>   這種格式,這樣我使用“對象”->item->title的方法只能讀取到第一個item的資料,這裡我最終使用的辦法的使用[php]  foreach ($xml->item as $th) {               $content_title[$i] = $th->title;             $content_rank[$i] = $th->rank;             $content_value[$i] = $th->value;             $i++;         }   對這個對象“$xml”實現遍曆,並使用一個自增變數i把每一組的資料存放區在數組中。其中的foreach 語句用於迴圈遍曆數組。 每進行一次迴圈,當前數組元素的值就會被賦值給 value 變數(數組指標會逐一地移動) - 以此類推。文法[php]  foreach (array as value)  {      code to be executed;  }   例子下面的例子示範了一個迴圈,這個迴圈可以輸出給定數組的值:[php]  <html>  <body>    <?php  $arr=array("one", "two", "three");    foreach ($arr as $value)  {    echo "Value: " . $value . "<br />";  }  ?>    </body>  </html>    程式原始碼如下: [php]  function xingzuo($keyword) {      if (make_xingzuo($keyword)) {          $keyword = make_xingzuo($keyword);          $qurl = 'http://api.uihoo.com/astro/astro.http.php?fun=day&id=' . $keyword . '&format=xml';          $content = file_get_contents($qurl);          $xml = simplexml_load_string($content);          $i = 0;          foreach ($xml->item as $th) {                $content_title[$i] = $th->title;              $content_rank[$i] = $th->rank;              $content_value[$i] = $th->value;              $i++;          }            return "星座運勢:\n綜合運勢:" . $content_rank[0] . "顆星\n愛情運勢:" . $content_rank[1] . "顆星\n學習狀態:" . $content_rank[2] . "顆星\n理財運勢:" . $content_rank[3] . "顆星\n健康指數:" . $content_value[4] . "\n幸運顏色:" . $content_value[6] . "\n幸運數字:" . $content_value[7] . "\n速配星座:" . $content_value[8] . "\n綜合概述:" . $content_value[9];      }      else          return "輸入的星座小編不認識哎>_< ";  }    function make_xingzuo($keyword){      $arr = array('白羊座' => '0','金牛座' => '1','雙子座' => '2','巨蟹座' => '3','獅子座' => '4','處女座' => '5','天秤座' => '6','天平座' => '6','天蠍座' => '7','射手座' => '8','摩羯座' => '9','水瓶座' => '10','雙魚座' => '11');      if(strtr($keyword, $arr)<12&&strtr($keyword, $arr)>0){          return strtr($keyword, $arr);      }   else {         return false;       }              }   

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。