$gif = "GIF89a(・b・E・タ・#・・・c・艤55・・・・";


のようなバイナリーデータをGIF画像として表示させるにはどうすれば良いでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

GIFファイル単体表示の場合は以下の方法で良いかと思います。


------ gifimage.php --------------------------
<?
// ファイル種類がGIFであることを通知
Header("Content-type: image/gif");

// GIFデータを変数に入れる(DBから持ってくる)
// (ファイルを直接読むので有ればfileread()で良い)
$filename = "test.gif";
$size = @filesize($filename);
$fd = @fopen($filename, "rb");
if ($fd) {
$wCon = @fread($fd, $size);
@fclose ($fd);
}
// GIFバイナリデータを出力
echo $wCon;
?>
------ gifimage.php --------------------------

ただし全てPHPで処理し、そのHTMLの中にGIFを表示させようとされているように思われます。
HTML部分と画像部分を分割し、

------ html.php ------------------------------
echo "<IMG SRC='gifimage.php'>";
------ html.php ------------------------------
という風に2段構えで処理してはどうでしょうか?
基本的にWebページはHTMLファイルを読んで、その中に<IMG>や<A>タグ等で画像が有れば後で個別に読み込まれます。1ファイルずつ処理されるのです(HTTPプロトコル)。
    • good
    • 0

マークミスをしました。


専門家ではなく、経験者です。
でも、以下のようにやればできると思います。
    • good
    • 0

header("Content-type: image/jpeg");


を頭に入れて、gifファイルだけを呼び出すPHPを作ってあげればよい。
表示されたい場合は、そのPHPに何らかの情報を提供してあげればよい。
    • good
    • 0

そのデータをprintする前にheader("image/gif");としてやってください。



# しかしこの辺FAQな割にはあまりまとめてある所を見ないんだよな・・・

この回答への補足

早速の回答ありがとうございます。
HTMLの途中で変数$gifを使用しているので、
直前にheader("image/gif");とすると警告が出てエラーとなってしまいました。

実はMySQLにバイナリーデータを保存して、
それを取り出したら、$gifのような状態になってしまします。
いろいろ解説書を読みあさったのですが、
保存するところまでは何とか出来たのですが、
それを使って画像を表示させる方法まで触れられていなくて困っています。

何か他に方法がありましたら教えて頂きたいのですが。

補足日時:2002/01/17 02:31
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qprint "{$data[$i][$j]}";の $dataと「直接関係」がある

<!DOCTYPE html>
<html>
<head>
<title>P185 Sample6-15▸ 多次元配列</title>
</head>
<body>

<?php

$data[0][0] = "東京";
$data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
$data[0][2] = 25;
$data[1][0] = "名古屋";
$data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
$data[1][2] = 21;
$data[2][0] = "大阪";
$data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
$data[2][2] = 20;
$data[3][0] = "京都";
$data[3][1] = 26;//$data[3][●]に京都のデータを格納します。
$data[3][2] = 19;
$data[4][0] = "福岡";
$data[4][1] = 27;//$data[4][●]に福岡のデータを格納します。
$data[4][2] = 22;

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>都市名</th>
<th>最高気温</th>
<th>最低気温</th>
</tr>

<?php

for($i=0; $i<count($data); $i++){
print "<tr>";
for($j=0; $j<count($data[0]); $j++){
print "<td>{$data[$i][$j]}</td>";//配列の要素を出力する。
}
print "</tr>\n";
}

?>

</table>

</body>
</html>
以上ですが・・・だんだん難しくなってきました!
 さて
  print "<td>{$data[$i][$j]}</td>";の $dataと「直接関係」があるところは
 1) for($j=0; $j<count($data[0]); $j++){  
 2)$data[0][0] = "東京";~$data[4][2] = 22;
  の1)2)のどちらと「直接関係」があるのでしょうか?
 以上よろしくお願いいたします。

<!DOCTYPE html>
<html>
<head>
<title>P185 Sample6-15▸ 多次元配列</title>
</head>
<body>

<?php

$data[0][0] = "東京";
$data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
$data[0][2] = 25;
$data[1][0] = "名古屋";
$data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
$data[1][2] = 21;
$data[2][0] = "大阪";
$data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
$data[2][2] = 20;
$data[3][0] = "京都";
$data[3][1] = 26;//$data[3][●]に京都の...続きを読む

Aベストアンサー

> の1)2)のどちらと「直接関係」があるのでしょうか?

No.1さんと同じく質問の意味が理解できません。
わかり易く補足いただいた方が良いかと思います。



”の1)2)のどちらと「関係」があるのでしょうか?” というご質問であれば

”どちらとも関係あります” という回答になります。

Q$a[0]='w';$a[1]='r';を1回で

$a=array();
$a[0]='w';
$a[1]='r';
2行目と3行目を$a=はてな('w','r');
のように書くことはできませんか?

Aベストアンサー

こんにちは。

$a = array ( 'w', 'r' );

でいけると思いますが。

http://fol.axisz.jp/php/man/php/function.array.html

Q$1$2$3 $2が空だったら$1と$3割る。

タイトルどおりです。

$1=100
$2=200
$3=300

これが

$1=100
$2=''
$3=300
と空だったら
($1+$3)/2
と、するにはどうしたら良いですか??

更に

$1=100
$2=''
$3=''
$4=400

と、空が二つ入った場合

$1=100
$2=200
$3=300
$4=400

と、折れ線グラフで表したら綺麗に直線にしたいんですが、どういう計算式、プログラムで出来ますか??

Aベストアンサー

まじめに答えれば「$1」なんて文法的に使えない例をあげられても
答えようがない

たとえば$aと$cだとして、変数名だけ見て$bが省略されているなんて
判断できない。

Qプログラムの中の public $name = "姓名"; public $age = 20;

以下のプログラムの中に
public $name = "姓名";
public $age = 20;
 があります。なくても表示自体に影響はないのですが、何の目的であるのでしょうか!?
以下問題のプログラムです。 よろしくお願いいたします
--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>P251 Sample8-2 複数のオプションを作成する</title>
</head>
<body>

<?php
#$は変数の宣言
$pr1 = new Person;
$pr1->name = "鈴木";
$pr1->age = 56;

$pr2 = new Person;
$pr2->name = "佐藤";
$pr2->age = 38;

?>
<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>

<?php

print "<tr><td>";#特に<tr>がなくてもOK
print $pr1->getnam();
print "</td><td>";#特に</td>がなくてもOKでした。
print $pr1->getage();
print "</td></tr>";#特になくても表の2行目表自体は影響はなかった。

print "<tr><td>";
print $pr2->getnam();
print "</td><td>";
print $pr2->getage();
print "</td></tr>";

?>

</table>
<?php

class Person

{
public $name = "姓名";
public $age = 20;

function getnam(){return $this->name;}
function getage(){return$this->age;}
}

?>

</body>
</html>

以下のプログラムの中に
public $name = "姓名";
public $age = 20;
 があります。なくても表示自体に影響はないのですが、何の目的であるのでしょうか!?
以下問題のプログラムです。 よろしくお願いいたします
--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>P251 Sample8-2 複数のオプションを作成する</title>
</head>
<body>

<?php
#$は変数の宣言
$pr1 = new Person;
$pr1->name = "鈴木";
$pr1->age = 56;

...続きを読む

Aベストアンサー

変数の置き場を、メモリー上に確保するためです。
前者は文字として、後者は数値として。


人気Q&Aランキング

おすすめ情報