プロが教えるわが家の防犯対策術!

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']));
?>

A 回答 (3件)

試しにやってみました。


Win2000+AN HTTPD+PHP4.3.9

<?php
$test=getimagesize("test.swf");
print $test[0];
?>

で問題なく表示されました。
バージョンの違いによって、というのはわからないですねー。
ご参考までに。

ちなみに
>Flashのファイルにはイメージサイズは無い
これはステージを読んでサイズを出していると思うのでベクトルデータ云々は関係ないと思いますね。
    • good
    • 0

FlashもPHPもかじっているものです。



本来ベクトルデータベースなので、そもそもFlashのファイルにはイメージサイズは無いと思うのですが。

フラッシュプレーヤー単独(ブラウザ無しで)で再生する場合は、フラッシュを作成した大きさで再生されますが、ブラウザを介した場合は、デフォルトでは最大(100%)表示になります。
フラッシュを書き出す時には、フラッシュを呼び出す元のHTMLにフラッシュの表示サイズを指定する必要が有るくらいですから。ベクトルデータなのでどんなに大きくても、どんなに小さくても、自動的に拡大縮小されてきれいに表示されます。

なので、指定のサイズ以外でエラー、と言う訳にはいきません。
代替案として、フラッシュをアップロードする時に登録者にフラッシュの管理者が考えている範囲で表示サイズを指定させたらどうでしょうか?
    • good
    • 0

時間がないので適当レスですが、


Flashの場合、使えません。
変わりに、PHP→Flashの制御はmingを使用します。
※かなり不安定なとこがあります。しかもFlashのバージョンで・・・

アップされたFlashということなので、参考になりませんが、
Flashの制御は、
PHP→Flashは、現状不安定です。
Flash→PHPでカバーできる手段を考えるのが妥当です。

以上、テキレスさせてもらいました。
    • good
    • 0

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