何度か同様の質問をしていたのですがどうしもて解決せず、今日自分でいじっていて一部原因が分かりました。
やりたいことは単純にphpで画像を表示したい・・というだけだったのですが、初心者サイトを見て
以下の通りにやってみても必ず画像が文字化けします。
原因がまったく分かりませんでしたが、どうも"<?php"の前に文字や空欄や改行があると文字化けするみたいです。<?phpの後ろは特に改行などあっても文字化けしないようです。
つまり一行目の一マス目に"<?php"があれば問題なく画像が表示されるのですが
私はhtmlサイトの中でphpを使いたいのでこれで困ります。
phpの本など見ましたがこのような現象は載っていません。
どうしてこのような現象が起きるか分かる方いますでしょうか??
<?php
$img = file_get_contents("aaa.jpeg'");
header('Content-type: image/jpeg');
echo $img;
?>
<?php
header('Content-type: image/jpeg');
readfile('aaa.jpeg');
?>
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> 覚えておいて頂きたいのは、header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があることです。
> 頻出するエラーとして、(略)空白または空行があり、header() の前に出力が 行われてしまうというものがあります。
マニュアルにちゃんと書いてあります。
> 私はhtmlサイトの中でphpを使いたいのでこれで困ります。
すみません、これは意味不明です。
もし
ここに「画像<?php 〜readfile〜?>」を入れる
みたいな使い方をしたい、ということならできません。
No.2
- 回答日時:
案1
-- aaa.php
HTMLページの中で画像タグ <img src="aaa_sub.php?p=12345" type="image/jpeg"> を挿入
--- aaa_sub.php
<?php
// aaa.jpeg の画像表示
// 必要ならパラメーター p を読み取る
案2
HTMLページの中で画像タグ <img src='data:image/jpeg;base64,<?php
// aaa.jpeg を Base64 形式で表示
?>'> を挿入
No.3
- 回答日時:
画像ファイルを readfile などで直接取り込む場合は、画像専用のスクリプトを用意してください。
でないと、画像と認識されず、うまく出力されません。
たとえば
[image.php]
<?php
header('Content-type: image/jpeg');
readfile('aaa.jpeg');
?>
image.php にはこれ以外にはもう何も書いてはいけません。せいぜいファイルの存在チェックとかくらいです。とりあえず気にしないでください。
では、どのように表示させるかというと、img 要素を使います。
[test.html]
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">
<head>
<title>test</title>
<meta charset="UTF-8" />
</head>
<body>
<p><img src="image.php" alt="" width="10" height="10" /></p>
</body>
</html>
単純な HTML ファイルですが、これで画像が表示されると思います。
画像とHTMLは完全に別にしないと動作しないので気を付けてください。とりあえずそういうものだと思ってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
リダイレクト元のURLの取得方法...
-
PHPで取得したHTML内のdiv要素...
-
PHPでダブルバッファリング(画...
-
文字列を段落で分ける方法を教...
-
phpでmysqlから画像パスを出力する
-
PHPSpreadsheetによる書き出し...
-
こちらはただの直列処理ですか?
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
VBでメールを送る時のSMT...
-
ワードプレスサイト PHP8.0.25...
-
FTPコマンドでディレクトリごと...
-
アップロード画像数でCSSを分け...
-
二重投稿防止方法
-
PHPのif文でその処理を途中で抜...
-
入力フォームの空白や改行を制...
-
php5のrename()は日本語をリネ...
-
sqlで日付が一番古いデータの月...
-
HYのAM11:00のラップの部分の歌...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
PHPにおける時間計算、時間足し...
-
PHPで取得したHTML内のdiv要素...
-
TCPDFについて
-
エクスプローラーでフォルダを...
-
¥マークを出力したいがバック...
-
リダイレクト元のURLの取得方法...
-
ob_end_clean と ob_clean の違...
-
PHPで`headers already sent`と...
-
PerlからPHPへ移行したときの注...
-
PHPでデータベースからデータを...
-
image関数でMS Pゴシックを使い...
-
smarty foreach 半角スペース
-
phpでの画像表示
-
webroot以外の画像の表示
-
phpexcelにてsubmitボタンを押...
-
phpにcssを適応させたい...
-
PHPで動的に生成した画像がキャ...
-
文字列を段落で分ける方法を教...
おすすめ情報