phpで特定のextentionを一時的に使えなくする方法を教えてください。

例えば
mcrypt
mcrypt support => enabled

mcrypt support => disabled
にする方法。

結果的に、
extension_loaded('mcrypt')
をfalseで返す状態にしたいです。

ini_setあたりでできるんでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/06/11 15:02:48
  • 終了:2006/06/18 15:05:03

回答(2件)

id:takagimasahiro No.1

m-takagi回答回数23ベストアンサー獲得回数22006/06/11 16:35:32

ポイント60pt

question:1150003912 絡みでしょうか。

もし単純に

結果的に、

extension_loaded('mcrypt')

をfalseで返す状態にしたいです。

が実現できさえすればいいのなら、APDが使えそうです。例えば以下のような感じで (テストできる環境がないので、動作検証はしていません。もしかしたら全然動作しないかもしれません)。

<?php
rename_function('extension_loaded', 'original_extension_loaded');
override_function('extension_loaded',
                  '$a',
                  'if ($a == "mcrypt") { return FALSE; } else { return original_extension_loaded($a); }');
?>
  • 標準の extension_loaded 関数の名前を original_extension_loaded に変更する (rename_function)
  • extension_loaded 関数を上書きし、引数に "mcrypt" が指定された場合には無条件で FALSE を返すようにする (それ以外の場合は orig_extension_loaded の内容をそのまま返す) (override_function)

ということをしています。

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 えるふん 76 64 8 2006-06-13 16:47:44

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません