性格いい人が優勝

http://jp2.php.net/manual/ja/stream.streamwrappe …

に「グローバル変数の読み書き用のストリーム」ということで
便利なclass VariableStreamを掲載して頂いております。

非常に便利で使わせて頂いております。

例えば・・・データベース上から画像データ引っ張りだして

$img_data = pg_unescape_bytea(データべーすから引っ張り出します);

require_once("VariableStream.inc");
stream_wrapper_register("var", "VariableStream")
or die("Failed to register protocol");

list($width, $height) = getimagesize("var://img_data");

とかしてファイルに落とさずに変数にいれたまま画像のサイズを取得したりしてます。

----ここから本題-----------------------------

んでもさすがに

filesize("var://img_data");

これは動作しませんでした。

Warning: filesize(): VariableStream::url_stat is not implemented!

1,ファイルに落とさずに動作させることは理論的に可能でしょうか?
2,動作するような関数は既存で存在していますか?

A 回答 (2件)

ストリームラッパーを使う必要はありません。

PHP5.4以降であればgetimagesizefromstring関数が使えます。

PHP Manual - getimagesizefromstring
http://www.php.net/manual/ja/function.getimagesi …

PHP5.3向けに実装したい場合、以下のような関数を用意して代用します。

Gist - Define getimagesizefromstring to use in PHP 5.3
https://gist.github.com/t-cyrill/6109550

>> んでもさすがに
>>
>> filesize("var://img_data");
>>
>> これは動作しませんでした。

strlen("img_data") でいいのでは…?

PHP Manual - strlen
http://www.php.net/manual/ja/function.strlen.php
    • good
    • 0
この回答へのお礼

たしかに確かに

strlenでよかですねw

お礼日時:2014/05/08 09:41

っていうか、データベースに格納してあるなら


文字列関数でバイト数を調べることできるでしょ?
    • good
    • 0
この回答へのお礼

たしかに確かに

strlenでよかですね

お礼日時:2014/05/08 09:42

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