ホームページ >バックエンド開発 >PHPチュートリアル >PHPを呼び出すときに画像が文字化けする問題

PHPを呼び出すときに画像が文字化けする問題

WBOY
WBOYオリジナル
2016-06-20 12:52:541343ブラウズ

<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


ディスカッション (解決策) への返信

あなた2 種類のデータが 1 ページに出力されますが、ブラウザーはそれらを分離する方法を知りません。したがって、文字化け


$wea = "http://1.alilo.sinaapp.com/Weather/0.jpeg"; を変更する必要があります。 = imagecreatefromgif($wea);
header("Content-type:image/jpeg");
echo '6e94304a6f2680d442950379734d23d7';

本当に画像を取得して完了したい場合は、これらの 4 行を別のファイルに書き込む必要があります。 wea.php
のように、


を呼び出して、1 つのページに 2 種類のデータを出力します。ブラウザ それらを分離する方法がわかりません。したがって、
文字化け

$wea = "http://1.alilo.sinaapp.com/Weather/0.jpeg"; を変更する必要があります。 = imagecreatefromgif($wea); header("Content-type:image/jpeg"); echo '6e94304a6f2680d442950379734d23d7';

本当に画像を取得して完了したい場合は、これらの 4 行を別のファイルに書き込む必要があります。 wea.php
次に、


を呼び出します。この関数はテストのために後で追加しました。 . 、主に「foreach」の背後にあるコードです。変更を加えた後も、foreach コードでは文字化けが表示されます。解決してください。 。

皆さんもそうですか?
$img = imagecreatefromgif($path);
header("Content-type:image/gif"); 🎜>そうですか?
同じ問題について推論をしてみませんか?








この文には一重引用符が欠けていることがわかりました。 echo '7bc456427b28b97ed73a1f0058145557'; ありがとうございます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。