ホームページ  >  記事  >  バックエンド開発  >  PHP がキャッシュされた画像を取得すると、ページに文字化けした情報が表示されます。

PHP がキャッシュされた画像を取得すると、ページに文字化けした情報が表示されます。

WBOY
WBOYオリジナル
2016-06-23 13:31:00937ブラウズ

PHP の初心者です。助けてください。オープンソースの PHP QR コードを使用して QR コード画像を生成し、それをローカル フォルダーにキャッシュしたところ、ページ上で大量の文字化けしたエラー メッセージが報告されました。 PHPメッセージになるので解決方法がわかりません。

QR コード画像の読み取りと書き込み用のコード

//读缓存function read_qrcode_cache($filename){    $result = array();    if (!empty($result[$filename])) {        return $result[$filename];    }    $filepath = PHPMPS_ROOT . 'data/qrcodecache/' . $filename;    if (file_exists($filepath)) {        include_once($filepath);        $result[$filename] = $data;        return $result[$filename];    } else {        return false;    }}//写入缓存function write_qrcode_cache($filename, $val){	$errorCorrectionLevel = 'L';//容错级别   	$matrixPointSize = 4;//生成图片大小  		$filepath = PHPMPS_ROOT . 'data/qrcodecache/' . $filename;	QRcode::png($val, $filepath, $errorCorrectionLevel, $matrixPointSize, 0); }//调用缓存函数的代码	$value = 'BEGIN:VCARDVERSION:3.0N:' . $info['title'] . 'TEL:0575-87238712TEL;CELL:18969558900ORG:' . $info['title'] . 'END:VCARD';	$filename = md5($value).'.png';		$data = read_qrcode_cache($filename);	if ($data === false) {		write_qrcode_cache($filename,$value);	}		$info['Qrcode'] = $CFG['weburl'] . '/data/qrcodecache/' . $filename;


報告されたエラー メッセージ:

ありがとう~~


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

あなたのメッセージはエラー メッセージではなく、png 画像データ ストリームです
画像は img タグで表示する必要があり、それを直接出力するブラウザでは当然文字化けします

あなたのメッセージはエラーメッセージではなく、png 画像データストリームです。 imgタグで出力しました
7af5c5ef489d65299c7712b3f31ef53c 画像もページ上に普通に表示できます

$info['Qrcode' ]はファイル名です
明らかに、画像コンテンツをどこかに直接出力しています

$info['Qrcode'] はファイル名です
明らかに、画像コンテンツをどこかに直接出力しています

ああ、では、これをどのように処理しますか


function read_qrcode_cache($ファイル名)

{
$result = array(); if (!empty($result[$filename])) {

return $result[$filename]; }
$filepath = 'data/qrcodecache/' 。 $ filename if($ filepath){include_once($ filepath); $result[$filename])) {
return $result[$filename];
$filepath = 'data/qrcodecache/' . $filename
if (file_exists($filepath)) {
include_once($) filepath); この行を削除します
$result[$filename ] = $Data;
Return $ Result [$ FILENAME]; else {
Return false;

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