php imagepng が表示できない問題の解決策: 1. サードパーティのエンコード ツールを使用して、BOM なしの utf-8 形式でファイル形式を保存します。 2. 「ob_clean();」を使用して、バッファをクリアします。
この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター
こんな場合はどうすればよいですか? php imagepng を表示できません?
PHP は GD ライブラリを使用して画像を描画しますが、問題を表示できません
公式 GD ライブラリによると、画像ドキュメント スタイルを描画します
オリジナルの基本スタイル:
$width = 120; $height = 50; $img = @imagecreatetruecolor($width, $height) or die('Cannot Initialize new GD image stream');;//新建一个GD图像资源 $img_bgcolor = imagecolorallocate($img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));//背景色 $img_textcolor = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));//字体颜色 $img_rectangle = imagefilledrectangle($img,0,0,$width, $height,$img_bgcolor);//画一个矩形图像 imagestring($img, 1, 5, 5, 'A Simple Text String', $img_textcolor); // 输出图像 header("Content-type:image/png"); imagepng($img); imagedestroy($img);//销毁图像
ただし、実際のアプリケーションでは画像が正常に表示できない問題が発生する可能性があります:
理由は次のとおりです:
理由 1: ファイルのエンコード形式に BOM ヘッダーが含まれている場合、解決策は、サードパーティのエンコード ツール、Sublime またはメモ帳などを使用して保存することです。ファイル形式は BOM フリー utf-8 形式です
理由 2: PHP バッファーの問題。解決策は、ob_clean(); を使用してバッファーをクリアすることです。
一般的に使用されるバッファ関数 ob function
参考: http://php.net/manual/zh/ref.outcontrol.php
ob_get_contents() - 出力バッファの内容を返します。
ob_flush() - 出力バッファの内容をフラッシュします (送信します)
ob_clean() - クリアします ( Erase) ) 出力バッファ
ob_end_flush() - 出力バッファの内容をフラッシュ(送信)し、バッファを閉じます
ob_end_clean() - バッファをクリア(消去)し、出力バッファ
flush() - 出力バッファをフラッシュします
GDライブラリがインストールされているかどうかを確認します
function_exists('imagecreate')拡張ライブラリによって提供されるメソッド get_extension_funcs() は存在しますが、包括的ではないため推奨されません (拡張機能によっては関数が提供されていないため)
in_array('拡張子名', get_loaded_extensions()) extension は読み込まれた拡張機能にあります インストールされているかどうかを判断します (包括的ですが簡潔ではありません)
extension_loade('拡張ライブラリ名') 拡張ライブラリがロードされているかどうかを判断して検証します (包括的ですが簡潔ではありません)拡張機能がインストールされ読み込まれているかどうかを確認するには、この方法を使用することをお勧めします)
推奨学習: "PHP ビデオ チュートリアル "
以上がphp imagepngが表示できない場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。