0

数日前、私はワードプレスサイトでカスタムphpを使用する方法を探していましたが、ここで答えを見つけました:ワードプレスにphpページを追加する方法
いくつかの例を試してみましたが、それぞれでうまくいきました。しかし、それから私はさらに進んで、そのように追加されたワードプレスページでPHP画像処理を使用したいと思いました。通常のphpサイト(このコードだけを使用)で動作しますが、worpressで使用しようとするとエラーが発生します:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wordpress\wp-content\themes\twentyeleven\header.php:13) in C:\xampp\htdocs\wordpress\wp-content\themes\twentyeleven\mynewsite.php on line 26

私が使用しようとしている私のコードは次のとおりです。

<?php
$dest = imagecreatefrompng('image1.png');
$src = imagecreatefromjpeg('image2.jpg');

imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); //putting one image on top of other

header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
?>

問題はここにヘッダーを送信しようとしていることですが、解決方法がわかりません。
このヘッダーをファイルの先頭に移動しようとしましたが、Worpressサイト全体が読み込まれません。

header('Content-Type: image/png');
get_header(); //<-- part of wordpress template, cant get rid of it, cuz it ruins whole site look.

したがって、get_header();のように見えます。ここではどういうわけか「問題」です。
ob_start()、flush、cleanなどを使用してみましたが、サイトをロードせずに、必要な画像を取得できます。私はオプションを使い果たしました、そしてこれらのどれも私の問題を解決しませんでした。

私の質問は:このヘッダーを送信して機能させる方法です。ヘッダーがないと、png画像の代わりに奇妙な記号が表示されます(メモ帳でpng画像を開くように)

助けていただければ幸いです。

4

2 に答える 2

2

この問題は、phpタグ「?>」を閉じた後にスペース/改行があったときに発生しました。すべてのファイルから削除したところ、うまくいきました。かなり奇妙ですが、うまくいきました。

于 2012-07-06T08:28:07.193 に答える
2

さて、これに対する解決策を見つけました。将来誰かに役立つかもしれないので、答えを投稿してください。

だから私は簡単な言葉を使って、これを理解させました。
header('Content-Type: image/png');サイト全体を「画像として扱う」ようにします。そのため、WordPressファイルにヘッダーを配置する場所を見つけても、結果はまったく表示されませんでした。この問題を解決するには、という別のファイルを作成し、image.phpそこにPHPGDコードを配置します。

$dest = imagecreatefrompng('image1.png');
$src = imagecreatefromjpeg('image2.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); //putting one image on top of other
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);

もちろん、<?php ?>タグや、表示したいWordPressページではを使用します<img src = "image.php">。これにより、ヘッダーのすべてのエラーが取り除かれ、このPHPコードによって作成済みの画像も表示されます。

于 2012-07-06T10:33:59.063 に答える