ホームページ  >  記事  >  バックエンド開発  >  php、検証コードの画像、文字化けコードの解決策

php、検証コードの画像、文字化けコードの解決策

WBOY
WBOYオリジナル
2016-06-13 12:49:071652ブラウズ

php、認証コード画像、文字化け
何が問題なのかは分かりませんが、プレビューすると文字化けが大量に出ます

ob_clean();
header("Content-Type: image/png");
$img=@imagecreatetruecolor(50,20) または die("fjhb");
$bg_color=imagecolorallocate($img,255,255,255); imagefill($img,0,0,$bg_color);
$border_color=imagecolorallocate($img,200,200,200); imagerectangle($img,0,0,49,19,$border_color);
for($i=2;$i $line_color=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));
imageline($img,2,$i,47,$i,$line_color);
}
$font_size=12;
$str[0]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str[1]="abcdefghijklmnopqrstuvwxyz";
$str[2]="01234567891234567890123456";

$imgstr[0]["s"]=$str[rand(0,2)][rand(0,25)];
$imgstr[0]["x"]=rand(2,5);
$imgstr[0]["y"]=rand(1,4);

$imgstr[1]["s"]=$str[rand(0,2)][rand(0,25)];
$imgstr[1]["x"]=$imgstr[0]["x"] $font_size-1 rand(0,1);
$imgstr[1]["y"]=rand(1,3);

$imgstr[2]["s"]=$str[rand(0,2)][rand(0,25)];
$imgstr[2]["x"]=$imgstr[1]["x"] $font_size-1 rand(0,1);
$imgstr[2]["y"]=rand(1,4);

$imgstr[3]["s"]=$str[rand(0,2)][rand(0,25)];
$imgstr[3]["x"]=$imgstr[2]["x"] $font_size-1 rand(0,1);
$imgstr[3]["y"]=rand(1,3);

for($i=0;$i $text_color=imagecolorallocate($img,rand(50,180),rand(50,180),rand(50,180));
imagechar($img,$font_size,$imgstr[$i]["x"],$imgstr[$i]["y"],$imgstr[$i]["s"],$text_color);
}

imagepng($img);
imagedestroy($img);
?>

PHP

写真 確認コード -----解決策--------------------------------
ブラウザで文字化けが表示されるのですが、画像ではなく? ブラウザを閉じて、このアドレスに再度アクセスしてみてください。それでも動作しない場合は、ヘッダーに問題がある可能性があります。 画像出力の場合は、中国語出力が発生する可能性があるため、UTF-8 文字セットを使用することをお勧めします。
UTF-8 の場合は、BOM ヘッダーに注意する必要があります。

------解決策------------------

ここでのテストは正常です BOM ヘッダーが削除されているかどうかを確認します
gd ライブラリやその他の環境が充実しているか

主な感じはやはりヘッダーの問題です。ヘッダーの前に他の出力はありますか?

------解決策---------

lZ プレビューは次のように文字化けしていますか: この問題は、ファイルのエンコードが
であるために発生します。 次に、それを
に変更する必要があります。 OK、プレビュー効果:


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