>  기사  >  백엔드 개발  >  PHP获取缓存图片时页面上显示乱码信息,

PHP获取缓存图片时页面上显示乱码信息,

WBOY
WBOY원래의
2016-06-23 13:31:00937검색

PHP新手,求助大家,我用开源的PHP QR Code生成二维码图片缓存在本地文件夹,去读取时,页面上报了一堆乱码的错误提示,应该是PHP的提示信息,不知道怎么去解决。

读写二维码图片的代码

//读缓存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 标记显示,直接输出的浏览器自然是乱码了


先谢谢版主的回答,我是通过img标签输出的,
PHP获取缓存图片时页面上显示乱码信息,图片也能在页面正常的显示

$info['Qrcode'] 是 文件名
显然你还在哪里直接输出了图片内容

$info['Qrcode'] 是 文件名
显然你还在哪里直接输出了图片内容


噢,那请问这个要怎么去处理的

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 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;
    }
}


确实是这个引起的,基础不扎实,谢谢版主了。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.