PHP: PHP オプションと情報(info) - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<pfpro_versionassert_options>
view the version of this page
Last updated: Tue, 21 Dec 2004

XCI. PHP オプションと情報(info)

導入

以下の関数によりPHP自体に関する多くの情報(例えば、実行時の設定、 ロードされている拡張モジュール、バージョン等)を 得ることができます。実行しているPHPのオプションを設定する関数もあ ります。おそらく最も有名な関数であるphpinfo() もここにあります。

要件

これらの関数は、標準モジュールの一部として利用可能であり、常に使用できます。

インストール手順

これらの関数はPHPコアに含まれるため、使用す る際にインストールは不要です。

実行用の設定

これらの関数の動作は、php.iniの設定により変化します。

表 1. PHPオプション/情報設定オプション

名前デフォルト変更の可否
assert.active"1"PHP_INI_ALL
assert.bail"0"PHP_INI_ALL
assert.warning"1"PHP_INI_ALL
assert.callbackNULLPHP_INI_ALL
assert.quiet_eval"0"PHP_INI_ALL
enable_dl"1"PHP_INI_SYSTEM
max_execution_time"30"PHP_INI_ALL
magic_quotes_gpc"1"PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime"0"PHP_INI_ALL
PHP_INI_*定数の詳細および定義については、 ini_set()を参照下さい。

以下に設定ディレクティブに関す る簡単な説明を示します。

assert.active boolean

Enable assert() evaluation.

assert.bail boolean

Terminate script execution on failed assertions.

assert.warning boolean

assertionが失敗する度にPHP警告を発行します。

assert.callback string

assertionが失敗した時にコールされるユーザ関数

assert.quiet_eval boolean

assertion式の評価時にerror_reporting()の現在 の設定を使用します。有効な場合、評価時にエラーは表示されません。 (暗黙のうちにerror_reporting(0)とします) 無効な場合、エラーは、error_reporting()の設定 に基づき設定されます。

enable_dl boolean

このディレクティブは、Apacheモジュール版のPHPを使用した場合にの み有用です。PHPの動的ロード拡張機能をdl()で仮 想サーバー毎またはディレクトリ毎にonまたはoffオフに変更すること ができます。

動的ロード機能をオフにするのは主としてセキュリティ上の理由によ ります。動的ロード機能により、 open_basedirの拘束を全て無視す ることが可能になります。 デフォルトでは、セーフモードを 使用している場合以外、動的ロードが可能です。セーフモードにおいて は、dl()を使用することが常に不可能になります。

max_execution_time integer

スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定します。この命令は、いい加減に書かれたスク リプトがサーバーの負荷を上げることを防止するのに役立ちます。 デフォルトでは、30に設定されています。

最大実行時間は、システムコール、sleep()関 数等の影響を受けません。より詳細な情報については、 set_time_limit()関数の説明を参照下さい。

セーフモードで実行している場合にはこの設定をini_set() で変更することはできません。次善策としてはセーフモードをオフにするか あるいはphp.ini上で制限時間を変えるしかありません。

magic_quotes_gpc boolean

GPC(Get/Post/Cookie)処理に関するmagic_quotesの設定を行います。 magic_quotesがonの場合、'(シングルクオート)、"(ダブルク オート)、\(バックスラッシュ) 、NULLには全て自動的にバックスラッ シュでエスケープ処理が行われます。magic_quotes_sybaseもonの場 合、シングルクオートは、バックスラッシュではなくシングルクオー トでエスケープされます。

注意: magic_quotes_sybase ディ レクティブもONの場合、このオプションは、 magic_quotes_gpcを完全に上書きします。両方のオプションを有効に することにより、シングルクオートのみが ''のようにエスケープされます。 2重引用符、バックスラッシュ、NULは変更されず、エスケープされま せん。

get_magic_quotes_gpc()も参照して下さい。

magic_quotes_runtime boolean

magic_quotes_runtime が有効の場合、 データベースおよびテクストファイルを含む外部ソースから データを返す全ての関数のクオートは、バックスラッシュで エスケープされます。magic_quotes_sybase もonの場合、シングルクオートは、バックスラッシュの代わりにシング ルクオートでエスケープされます。

リソース型

この拡張モジュールはリソース型を全く定義しません。

定義済みの定数

この一覧にある定数は、PHPコアに含まれており常に利用可能です。

表 2. 定義済のphpcredits()定数

定数説明
CREDITS_GROUP1コア開発者のリスト
CREDITS_GENERAL2 General credits: Language design and concept, PHP 4.0 authors and SAPI module. 一般的なクレジット: 言語設計とコンセプト、PHP4.0と PHP SAPIモジュールの作者。
CREDITS_SAPI4 PHPのサーバAPIモジュールとその作者の一覧。
CREDITS_MODULES8 PHPの拡張モジュールとその作者の一覧。
CREDITS_DOCS16 ドキュメント作成チームのクレジット
CREDITS_FULLPAGE32 通常、他のフラグと組み合わせて使用されます。 他のフラグで示される情報を含む完全に独立したHTMLページを出力する ことを指定します。
CREDITS_QA64 品質管理チームのクレジット
CREDITS_ALL-1 全てのクレジット、CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGEを指定した場合と同じ。 この定数は、適当なタグを有する完全にスタンドアローンのHTMLページ を生成します。

表 3. phpinfo() constants

ConstantValueDescription
INFO_GENERAL1 configureオプション、php.ini の場所、構築日、Webサーバ、システ ム等。
INFO_CREDITS2 PHP 4 クレジット。phpcredits()も参照して下さ い。
INFO_CONFIGURATION4 PHPディレクティブの現在のローカルおよびマスター値。 ini_get()も参照して下さい。
INFO_MODULES8 ロードされているモジュールとそれぞれの設定。
INFO_ENVIRONMENT16 環境変数に関する情報で、$_ENVでも入手可能です。
INFO_VARIABLES32 EGPCS(Environment, GET, POST, Cookie, Server)から定義済の変数を表 示します。
INFO_LICENSE64 PHPライセンス情報。license faqも参照して下さい。
INFO_ALL-1 上記を全て表示します。これがデフォルト値です。

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

目次
assert_options -- 様々な assert フラグを設定/取得する
assert -- assertion が FALSE であるかどうかを調べる
dl -- 実行時にPHP拡張モジュールをロードする
extension_loaded -- ある拡張機能がロードされているかどうかを調べる
get_cfg_var -- PHP 設定オプションの値を取得する
get_current_user -- 現在の PHP スクリプトの所有者の名前を取得する
get_defined_constants --  全ての定数の名前とその値を連想配列として返す
get_extension_funcs --  あるモジュールの関数名を配列として返す
get_include_path --  現在のinclude_path設定オプションを取得する
get_included_files --  includeまたはrequireで読み込まれたファイルの名前を配列として返す
get_loaded_extensions --  コンパイル/ロードされている全てのモジュールの名前を配列として返す
get_magic_quotes_gpc -- magic quotes gpc の現在アクティブな設定を得る
get_magic_quotes_runtime --  magic_quotes_runtime の現在アクティブな設定値を得ます
get_required_files -- Alias of get_included_files()のエイリアス
getenv -- 環境変数の値を取得する
getlastmod -- 最終ページ更新時刻を取得する
getmygid -- PHPスクリプトの所有者のGIDを得る
getmyinode -- 現在のスクリプトの i ノードを取得する
getmypid -- PHP のプロセス ID を取得する
getmyuid -- PHP スクリプト所有者のユーザ ID を取得する
getopt -- コマンドラインの引数リストからオプションを取得する
getrusage -- カレントリソースの使用に関する情報を得る
ini_alter -- ini_set()へのエイリアス
ini_get_all -- 全ての設定オプションを得る
ini_get -- 設定オプションの値を得る
ini_restore -- 設定オプションの値を元に戻す
ini_set -- 設定オプションの値を設定する
main -- main()のダミー
memory_get_usage -- PHPに割り当てられたメモリの量を返す
php_ini_scanned_files -- 追加のiniディレクトリにある.iniファイルのリストを取得する
php_logo_guid -- ロゴのguidを取得する
php_sapi_name --  WebサーバーとPHPの間のインターフェースの型を返す
php_uname --  PHPが構築されたオペレーションシステムに関する情報を返す
phpcredits -- PHPに関するクレジットを出力する
phpinfo -- いろいろな PHP 情報を出力する
phpversion -- 現在のPHPバージョンを取得する
putenv -- 環境変数の値を設定する
restore_include_path --  include_path設定オプションの値を元に戻す
set_include_path --  include_path設定オプションをセットする
set_magic_quotes_runtime -- magic_quotes_runtime の現在アクティブな設定を設定します。
set_time_limit -- 実行時間の最大値を制限します
version_compare --  二つの"PHP標準"バージョン番号文字列を比較する
zend_logo_guid -- zend guid を取得する
zend_version -- カレントのZendエンジンのバージョンを取得する


add a note add a note User Contributed Notes
PHP オプションと情報(info)
kok at mostware dot nl
17-Feb-2005 05:00
It's easy to get confused in all the magic_quotes settings. Therefor, I used this script to clear things up a little. Hope it helps!
Note 1: Use a simple costumer database table with as costumer_id and a costumer_name, named costumer.
Note 2: You'll manually have to set magic_quotes_gpc in the php.ini, since it cannot be changed at runtime. Change it, restart your webserver, run again and see the difference. ;)

-----

<?php
  
function new_attempt() {
  
      
// Show what the settings are
      
echo 'get_magic_quotes_gpc = ' . get_magic_quotes_gpc() . '<br>';
       echo
'get_magic_quotes_runtime = ' . get_magic_quotes_runtime() . '<br>';
      
      
// Put userinput in var and show this
      
$userinput = $_POST['userinput'];
       echo
"userinput = $userinput<br>";
      
      
// Update without addslashes
      
echo '<i>Update without addslashes</i><br>';
      
$sql = "update costumer set costumer_name = '$userinput' where costumer_id = 1";
       echo
"sql = $sql<br>";
       echo
'mysql_query = ' . mysql_query ( $sql ) . '<br>';
      
      
// Update with addslashes
      
echo '<i>Update with addslashes</i><br>';
      
$sql = "update costumer set costumer_name = '" . addslashes($userinput) . "' where costumer_id = 2";
       echo
"sql addslashes = $sql<br>";
       echo
'mysql_query = ' . mysql_query ( $sql ) . '<br>';
  
      
// Select without stripslashes 2
      
echo '<i>Select without stripslashes 2</i><br>';
      
$sql = "select costumer_name from costumer where costumer_id = 2";
       echo
"sql = $sql<br>";
      
$resquery = mysql_query ( $sql );
       echo
'mysql_query = ' . $resquery . '<br>';
      
$resfetch = mysql_fetch_array( $resquery );
       echo
'mysql_fetch_array = ' . $resfetch . '<br>';
       echo
'array[\'costumer_name\'] = ' . $resfetch['costumer_name'] . '<br>';
      
      
// Select with stripslashes 2
      
echo '<i>Select with stripslashes 2</i><br>';
      
$sql = "select costumer_name from costumer where costumer_id = 2";
       echo
"sql = $sql<br>";
      
$resquery = mysql_query ( $sql );
       echo
'mysql_query = ' . $resquery . '<br>';
      
$resfetch = mysql_fetch_array( $resquery );
       echo
'mysql_fetch_array = ' . $resfetch . '<br>';
       echo
'array[\'costumer_name\'] stripslashes = ' . stripslashes($resfetch['costumer_name']) . '<br>';
      
   }
?>

<html>
   <head>
       <title>slashes test</title>
   </head>
   <body>

<?php
  
if ( $_POST ) {
  
      
// database connection
      
mysql_connect ( 'server' , 'user' , 'pass' );
      
mysql_select_db ( 'database' );
      
      
// Try both options
      
echo '<p><b>set_magic_quotes_runtime = 0</b><br>';
      
set_magic_quotes_runtime(0);
      
new_attempt();
       echo
'</p><p><b>set_magic_quotes_runtime = 1</b><br>';
      
set_magic_quotes_runtime(1);
      
new_attempt();
       echo
'</p>';
      
   }
?>

       <p> </p>
       <form method="post" name="slashes_form" action="slashes.php">
           <input type="text" name="userinput" value="<?=$_POST['userinput']?>"/>
           <input type="submit" name="submit" value="test">
       </form>

   </body>
</html>
Mark
15-Jun-2004 12:37
You probably don't want to set "magic_quotes_runtime" because it affects even binary file read/write operations. This is especially problematic if you include someone else's library that depends on binary read/write. If you enable "magic_quotes_runtime", be sure to use set_magic_quotes_runtime() function call to disable it before calling someone else's library that does binary read/write.

<pfpro_versionassert_options>
 Last updated: Tue, 21 Dec 2004
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: /
Last updated: Mon Mar 14 08:13:06 2005 Local time zone must be set--see zic manual page