>  기사  >  백엔드 개발  >  php调用图片乱码问题

php调用图片乱码问题

WBOY
WBOY원래의
2016-06-20 12:52:541330검색

<meta charset="UTF-8"><?php	//城市名    $city = '长沙';    //获取json格式的数据    $str = file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=KXrZyXh5wUSBEdo5TkgRQkBz");     //对json格式的字符串进行编码    $arr = json_decode($str,TRUE);            echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."<br /><br />";	$wea = "http://1.alilo.sinaapp.com/Weather/0.jpeg";	$weai = imagecreatefromgif($wea);	header("Content-type:image/jpeg");	imagejpeg($weai);     foreach($arr['results'][0]['weather_data']as $val)    {       echo $val['date']."<br/>";       echo "天气:{$val['weather']}<br/>";               $path = "{$val['dayPictureUrl']}";       echo "$path";       $imgInfo = getimagesize($path);       $imgType = $imgInfo[2];       switch ($imgType) {       case 1:        $img = imagecreatefromgif($path);        header("Content-type:image/gif");        imagegif($img);        break;       case 2 :        $img = imagecreatefromjpeg($path);        header("Content-type:image/jpeg");        imagejpeg($img);        break;       case 3 :        $img = imagecreatefrompng($path);        header("Content-type:image/png");        imagepng($img);        break;        default:        exit("图片格式不支持");    }          echo "<br/>";        //  echo "< img src = "{$val['dayPictureUrl']}" />";       echo "风向:{$val['wind']}<br/>";       echo "温度:{$val['temperature']}<br/><br />";     }?>

代码如上所示,输出来的是一串乱码。
网站:http://1.alilo.sinaapp.com/Weather/Weather.php


回复讨论(解决方案)

你在一个页面中输出了两种类型的数据,浏览器不知道怎么把他们分开。于是就 乱码

你需要将
    $wea = "http://1.alilo.sinaapp.com/Weather/0.jpeg";
    $weai = imagecreatefromgif($wea);
    header("Content-type:image/jpeg");
    imagejpeg($weai);
改为
echo 'php调用图片乱码问题';

如果你确实想通过抓取图片的方式了完成,那么需要将那4行单独写成文件,比如 wea.php
然后通过标记
php调用图片乱码问题
去调用

你在一个页面中输出了两种类型的数据,浏览器不知道怎么把他们分开。于是就 乱码

你需要将
    $wea = "http://1.alilo.sinaapp.com/Weather/0.jpeg";
    $weai = imagecreatefromgif($wea);
    header("Content-type:image/jpeg");
    imagejpeg($weai);
改为
echo 'php调用图片乱码问题';

如果你确实想通过抓取图片的方式了完成,那么需要将那4行单独写成文件,比如 wea.php
然后通过标记
php调用图片乱码问题
去调用



这一节功能是不要的,是我后面加上去测试用,主要是“foreach”后面的代码。按照你的改玩以后,foreach的代码还是显示乱码,求解。。

你不都是
$img = imagecreatefromgif($path);
header("Content-type:image/gif");
imagegif($img);
这样的吗?
一样的问题就不会举一反三吗?

<meta charset="UTF-8"><?php	//城市名    $city = "长沙";    //获取json格式的数据	 $string ="http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=KXrZyXh5wUSBEdo5TkgRQkBz";    $str = file_get_contents($string);  	//echo $str;    //对json格式的字符串进行编码    $arr = json_decode($str,TRUE);            foreach($arr['results'][0]['weather_data']as $val)    {       echo $val['date']."<br/>";       echo "天气:{$val['weather']}<br/>";                $path = "{$val['dayPictureUrl']}";     	echo '<img  src="'.$path.'" alt="php调用图片乱码问题" >';	   echo "<br/>";	    echo "<br/>";        //  echo "< img src = "{$val['dayPictureUrl']}" />";       echo "风向:{$val['wind']}<br/>";       echo "温度:{$val['temperature']}<br/><br />";          }           ?>

<meta charset="UTF-8"><?php	//城市名    $city = "长沙";    //获取json格式的数据	 $string ="http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=KXrZyXh5wUSBEdo5TkgRQkBz";    $str = file_get_contents($string);  	//echo $str;    //对json格式的字符串进行编码    $arr = json_decode($str,TRUE);            foreach($arr['results'][0]['weather_data']as $val)    {       echo $val['date']."<br/>";       echo "天气:{$val['weather']}<br/>";                $path = "{$val['dayPictureUrl']}";     	echo '<img  src="'.$path.'" alt="php调用图片乱码问题" >';	   echo "<br/>";	    echo "<br/>";        //  echo "< img src = "{$val['dayPictureUrl']}" />";       echo "风向:{$val['wind']}<br/>";       echo "温度:{$val['temperature']}<br/><br />";          }           ?>



原来是这一句少了个单引号!echo 'php调用图片乱码问题';           Thank you very much。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.