• ベストアンサー

Flashファイルの幅と高さを調べたい

Flashのファイル(*.swf)の画像の幅と高さを調べて 指定のサイズではない場合、エラー表示させるプログラムを作成したいと思っています。 GIFやJpegだとgetimagesizeを使用するときれいに幅と高さを返してくれるのですが、 Flashのファイル(*.swf)をgetimagesizeで調べてもエラーにはならず、戻り値をprint_rしても何も表示されませんでした。 (ちなみにテキストファイルでも何も返されませんでした。) とりあえず、flashファイルの高さと幅を調べたかったので↓のサンプルを作成しましたが、 $_FILES変数には調べたファイル全て普通にファイル情報が入っていました。 使用しているバージョンはPHP4.2.2です。 このバージョンだとgetimagesizeは*.swfファイルに対応していないのでしょうか? PHPはオープンソースだからgetimagesizeのソースを調べてみようと思ったのですが、 どこにソースが格納されているかわかりませんでした。 最初のページ ↓ <HTML> <HEAD> <TITLE></TITLE> </HEAD> <form action="test2.php" method="post" name="list" target="_self" enctype="multipart/form-data"> <BODY> <table width="100%" border="0"> <tr> <td class="cap">てすとだぴょん</td> </tr> </table> <input type="file" name="b_file""> <input type="submit" name="submit" value="調査"> </form> </BODY> </HTML> test2.php ↓ <?php print_r($_FILES); print_r(getimagesize($_FILES['b_file']['tmp_name'])); ?>

質問者が選んだベストアンサー

  • ベストアンサー
  • umioyo
  • ベストアンサー率66% (35/53)
回答No.3

試しにやってみました。 Win2000+AN HTTPD+PHP4.3.9 <?php $test=getimagesize("test.swf"); print $test[0]; ?> で問題なく表示されました。 バージョンの違いによって、というのはわからないですねー。 ご参考までに。 ちなみに >Flashのファイルにはイメージサイズは無い これはステージを読んでサイズを出していると思うのでベクトルデータ云々は関係ないと思いますね。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

FlashもPHPもかじっているものです。 本来ベクトルデータベースなので、そもそもFlashのファイルにはイメージサイズは無いと思うのですが。 フラッシュプレーヤー単独(ブラウザ無しで)で再生する場合は、フラッシュを作成した大きさで再生されますが、ブラウザを介した場合は、デフォルトでは最大(100%)表示になります。 フラッシュを書き出す時には、フラッシュを呼び出す元のHTMLにフラッシュの表示サイズを指定する必要が有るくらいですから。ベクトルデータなのでどんなに大きくても、どんなに小さくても、自動的に拡大縮小されてきれいに表示されます。 なので、指定のサイズ以外でエラー、と言う訳にはいきません。 代替案として、フラッシュをアップロードする時に登録者にフラッシュの管理者が考えている範囲で表示サイズを指定させたらどうでしょうか?

すると、全ての回答が全文表示されます。
  • kotaron
  • ベストアンサー率61% (8/13)
回答No.1

時間がないので適当レスですが、 Flashの場合、使えません。 変わりに、PHP→Flashの制御はmingを使用します。 ※かなり不安定なとこがあります。しかもFlashのバージョンで・・・ アップされたFlashということなので、参考になりませんが、 Flashの制御は、 PHP→Flashは、現状不安定です。 Flash→PHPでカバーできる手段を考えるのが妥当です。 以上、テキレスさせてもらいました。

すると、全ての回答が全文表示されます。

関連するQ&A