<?php
//强制页面UTF-8编码
//header("Content-Type: text/html;charset=UTF-8");
$local = trim($_GET["city"]);
//根据不同的浏览器,返回不同的urlencode编码
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE"))
//IE系列无需强制转码成GB2312后再编码,否则会在每个编码中间产生%00的垃圾数据,导至无法使用
{
echo "Internet Explorer" . "<br><br>";
echo urlencode($local) . "<br><br>";
$ct = urlencode($local);
} else { //其它浏览器需先强制mb_convert_encoding转码成GB2312后再编码
echo "Non Internet Explorer" . "<br><br>";
echo urlencode(mb_convert_encoding($local, "gb2312", "UTF-8")) . "<br><br>";
$ct = urlencode(mb_convert_encoding($local, "gb2312", "UTF-8"));
}
//将要访问的新浪天气接口
$url = "http://php.weather.sina.com.cn/xml.php?city=" . $ct .
"&password=DJOYnieT8234jlsK&day=0";
//开始获得天气数据
$html = file_get_contents($url);
//echo $html;
$xml = simplexml_load_string($html);
//var_dump($xml); //查看现对象内容
//echo "<br><br>";
//将XML内容先转成JSON再转成ARRAY的数组内容
$xml = json_decode(json_encode($xml), true);
//print_r($xml); //整理XML数据
//echo "<br><br>";
//数据使用方法
if (count($xml, 1) <= 1) {
//不知道为啥开头已经是UTF-8编码了,但这里直接显示中文就是乱码,实际是GB2312的,所以强制转了下
//找到原因了,将该文件的编码格式改为UTF-8保存就可以了
//echo mb_convert_encoding("城市名称写的不对,或无该城市天气", "UTF-8", "gb2312");
echo "城市名称写的不对,或无该城市天气";
echo "<br><br>";
echo count($xml, 1);
} else {
//使用数组中的内容
echo trim($xml['Weather']['city'])."<br><br>";
var_dump($xml);
echo "<br><br>";
echo count($xml, 1);
}
?>
//强制页面UTF-8编码
//header("Content-Type: text/html;charset=UTF-8");
$local = trim($_GET["city"]);
//根据不同的浏览器,返回不同的urlencode编码
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE"))
//IE系列无需强制转码成GB2312后再编码,否则会在每个编码中间产生%00的垃圾数据,导至无法使用
{
echo "Internet Explorer" . "<br><br>";
echo urlencode($local) . "<br><br>";
$ct = urlencode($local);
} else { //其它浏览器需先强制mb_convert_encoding转码成GB2312后再编码
echo "Non Internet Explorer" . "<br><br>";
echo urlencode(mb_convert_encoding($local, "gb2312", "UTF-8")) . "<br><br>";
$ct = urlencode(mb_convert_encoding($local, "gb2312", "UTF-8"));
}
//将要访问的新浪天气接口
$url = "http://php.weather.sina.com.cn/xml.php?city=" . $ct .
"&password=DJOYnieT8234jlsK&day=0";
//开始获得天气数据
$html = file_get_contents($url);
//echo $html;
$xml = simplexml_load_string($html);
//var_dump($xml); //查看现对象内容
//echo "<br><br>";
//将XML内容先转成JSON再转成ARRAY的数组内容
$xml = json_decode(json_encode($xml), true);
//print_r($xml); //整理XML数据
//echo "<br><br>";
//数据使用方法
if (count($xml, 1) <= 1) {
//不知道为啥开头已经是UTF-8编码了,但这里直接显示中文就是乱码,实际是GB2312的,所以强制转了下
//找到原因了,将该文件的编码格式改为UTF-8保存就可以了
//echo mb_convert_encoding("城市名称写的不对,或无该城市天气", "UTF-8", "gb2312");
echo "城市名称写的不对,或无该城市天气";
echo "<br><br>";
echo count($xml, 1);
} else {
//使用数组中的内容
echo trim($xml['Weather']['city'])."<br><br>";
var_dump($xml);
echo "<br><br>";
echo count($xml, 1);
}
?>