|
PHP は、CGI のように OS ネイティブなプログラムを動作させる仕組みを備えている。 そこで今回は、Windows のコマンドを使って、PHP が動作しているサーバの CPU の種類を表示させるプログラムを作ってみることにする。 |
サンプル・プログラム |
|
サンプル・プログラムの解説:バッククォート |
|
|
PHP で OS ネイティブなプログラムを走らせるのは簡単で、バッククォートでコマンドを囲むだけである。 バッククォートは演算子として作用し、戻り値は標準出力に返されるデータである。 ここでは Windows の set コマンドを使っており、環境変数の値がすべて変数 $output に格納する。そこから、 preg_match 関数を使い、Windows XP で標準設定される PROCESSOR_IDENTIFIER の値を取り出す。これが CPU の判定結果となる。
0012: $output = `set`; //DOSコマンドを実行する |
|
類似の関数 |
|
|
バッククォート演算子と等価な関数は shell_exec である。 また、類似する関数として、 exec と exec がある。 |
|
セキュリティとセーフモード |
|
|
OS ネイティブなコマンドを実行できるということは、使い方によってはサーバにダメージを与えかねない。たとえば del コマンドを実行するようにすれば、サーバに必要なファイルまで削除できてしまう。 そこで、PHP には「セーフモード」という概念があり、OS を守ることができるようになっている。 セーフモードが ON の場合、バッククォート演算子などは働かない。したがって、厳密を期すなら、プログラムの冒頭で、PHP がセーフモードになっているかどうかを調べるロジックを追加すべきである。 |
|
参考書籍 |
|
|
|
(この項おわり)
|
|
|
|
|
2008年08月26日更新
写真と記事 (C)2008 studio pahoo
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 |