18

PHPで「隠し」定数の信頼できる(リクエスト全体で一貫した)リストを取得しようとしています(ほとんどの場合、ハッキングなしではクライアント側はそれについて知りません)。

私が興味を持っていることのいくつかは次のとおりです。

  1. ./configureオプション。
  2. Systemまた、phpinfo の最初の値も必要です。
  3. ロードされた PHP モジュール (Apache セクションを参照)
  4. PHPのビルド日。
  5. 登録された PHP ストリーム
  6. 登録されたストリーム ソケット トランスポート
  7. 登録済みストリーム フィルタ

phpinfo の一部だけを取得したり、これらの値を通常の文字列として取得するにはどうすればよいですか? マークアップが含まれているかどうかは問題ではないことに注意してください。ただし、phpinfo を解析したくないのは、それが本当に遅いようで、確かにより良い方法があるためです..

4

3 に答える 3

22

どうぞ:

  1. ini_get_all()またはget_loaded_extensions() 私が見つけることができる最も近いものでした
  2. php_uname()
  3. apache_get_modules()
  4. phpversion() 私が見つけることができる最も近いものでした
  5. stream_get_wrappers()
  6. stream_get_transports()
  7. stream_get_filters()

get_defined_constants()およびその他のも参照してください


Chacha102 が述べたように、出力制御関数を使用して以下を解析することもできますphpinfo()

ob_start();
phpinfo();
$variable = ob_get_contents();
ob_get_clean();

これを使用することで、使用しているob_get_clean()可能性のある他の出力バッファリング レベルが台無しになることはありません。

于 2010-01-15T03:57:27.487 に答える
7

phpinfo() から利用できるもののほとんどは、定数で見つけることができます。調べてみてください:

print_r(get_defined_constants());

または、このページの関数: http://us.php.net/manual/en/ref.info.php。特定の拡張機能に関する情報を取得するための関数がたくさんあります。

次の関数は一見の価値があります。

ini_get() http://us.php.net/manual/en/function.ini-get.php
getenv() http://us.php.net/manual/en/function.getenv.php
get_cfg_var() http://us.php.net/ manual/en/function.get-cfg-var.php

于 2010-01-15T03:48:20.417 に答える
0

多分私は少し遅れていますが、基本的にphp.exeにシェルスクリプトを問題なく呼び出すと

php -i

次に、必要なすべての情報を解析できます

于 2016-03-31T17:39:52.203 に答える