Weather.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: chendeben
  5. * Date: 2018/9/23
  6. * Time: 下午4:20
  7. */
  8. namespace PhpLife\App\Api\Controller;
  9. use DOMDocument;
  10. use PhpLife\App\Api\Controller;
  11. use PhpLife\Library\Curl;
  12. class Weather extends Controller
  13. {
  14. /**
  15. * 执行逻辑
  16. * @return mixed
  17. */
  18. protected function main()
  19. {
  20. $url="http://mobile.weather.com.cn/js/citylist.xml";
  21. $data=Curl::get($url);
  22. $data=$this->xmlToArray($data);
  23. // die();
  24. // $dom = new DOMDocument();
  25. // $dom->load($url);
  26. // $data=$dom-;
  27. $result=[];
  28. foreach ($data['c']['d'] as $key=>$value) {
  29. $temp=[];
  30. $temp['province']=$value['@attributes']['d4'];
  31. $temp['en']=$value['@attributes']['d3'];
  32. $temp['city']=$value['@attributes']['d2'];
  33. $temp['code']=$value['@attributes']['d1'];
  34. $result[$value['@attributes']['d1']]=$temp;
  35. }
  36. echo "<pre>";
  37. var_export($result);
  38. echo "</pre>";
  39. }
  40. //将XML转为array
  41. function xmlToArray($xml)
  42. {
  43. //禁止引用外部xml实体
  44. libxml_disable_entity_loader(true);
  45. $values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
  46. return $values;
  47. }
  48. }