• 締切済み

PHPでのビット演算、バイナリファイル操作

PHPで、SWFファイルのビット単位での書き換えと、 情報の抽出を行っています。 しかし、ファイルからビット単位で読み込むことができないため(バイト単位になる)、なかなか苦労しています。 漠然とした質問になってしまいますが、PHPを使ってビット単位のデータを扱っている方、いらっしゃいますか? その他Perlのほうが向いているとか、バイナリファイルの加工をサーバサイドで扱っている方いらっしゃいましたら、どんなふうにやっているか教えていただきたいです。

みんなの回答

  • cdsdasds
  • ベストアンサー率52% (114/217)
回答No.2

>PHP外で処理をする場合、ビット演算に適した言語というと、一般的にはCなどになるのでしょうか? 処理の内容によるでしょうね。汎用性ならC、perl、処理がパターン化していて、ある程度単純ならsed、awk等もよいかもしれません。 >こちらの「加工」とはどういった加工でしょうか? おやりになりたい内容によって異なりますが、基本は望まれない実行命令が発行されないように、命令文の文字列をチェックし、あるいは強制的にパスを付加したり、記号とかがファイル名に入っていたら、エラーを返すなり、文字を置き換えるなりといった処理をするということです。

ozawachev
質問者

補足

あ、渡す引数などのサニタイズのことですね。 ありがとうございます。 ちょっとperlでやってみようかと思います。

  • cdsdasds
  • ベストアンサー率52% (114/217)
回答No.1

SWFファイルはローカルにあるものでしょうか? ある程度本格的な操作をしたいなら、 passthru() exec() system() shell_exec()といった関数で、PHP外で必要な処理をした出力を取り込むのが一般的と思います。 セキュリティに問題がないように、処理する文字列の加工は必須とおもいます。

ozawachev
質問者

補足

ご回答ありがとうございます。 SWFはweb上にあるもので、動的に加工しています。 PHP外で処理をする場合、ビット演算に適した言語というと、一般的にはCなどになるのでしょうか? 実は高級言語の知識がまったくないのですが、そうであればこれを機会に勉強してみたい(PHPのビット演算がめんどくさいので...)と思っています。 また、 >セキュリティに問題がないように、処理する文字列の加工は必須とおもいます。 こちらの「加工」とはどういった加工でしょうか?

関連するQ&A