1

テキストからpngファイルを作成するためにこの関数を作成しました:

function pngfromtext($text){
    $fontsize = 5;
    $width = imagefontwidth($fontsize)* strlen($text);
    $height = imagefontheight($fontsize);

    $img = imagecreate($width, $height);

    // Transparent background
    $black = imagecolorallocate($img, 0, 0, 0);
    imagecolortransparent($img, $black);

    // Red text
    $red = imagecolorallocate($img, 255, 255, 255);
    imagestring($img, $fontsize, 0, 0, $text, $red);

    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
}

コードをfunctions.phpファイルに入れました。別のページでこの関数を使用すると、次のエラーが発生します。

 Warning: Cannot modify header information - headers already sent by (output started at ..\functions.php on line 58
�PNG  IHDRZ^%JPLTE����ٟ�tRNS@��f�IDAT�c` Hȱ�7�H��'��`c��s�����i��$���Hl`8��Ɛ�� ��#�c��p�� q�3f�òm�� �g�ـ�6fF ���h�bc�sXd4c�A4����?|�¦����r+���!IEND�B`�

なにが問題ですか?

4

3 に答える 3

2

出力が画像になることがわかっているポイントにヘッダーを設定します。これは、このステートメントを設定することを意味します

header('Content-type: image/png');

phpスクリプトの最初に。

ここでは、この時点より前にヘッダーコマンドがすでに実行されている可能性もあります。

于 2012-08-11T14:14:35.397 に答える
1

ページ上で複数のヘッダーを使用することはできません。

于 2013-02-05T09:46:12.730 に答える
1

header('Content-type: image/png');置く前にob_clean(); 、応答オブジェクトをクリーンアップして、ヘッダーを再度追加できるようにします

于 2012-08-11T14:36:56.167 に答える