拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
PHP 5.4のビルトインウェブサーバー機能
PHP 5.4では、「ビルトインウェブサーバー」という機能が追加されました。
PHPのマニュアルによると「開発用としてのみ設計されたものであり、 実運用に使ってはいけません。
」ということですが、今後に期待できそうな機能です。
1.概要
ビルトインウェブサーバー機能は、コマンドライン版のPHPが、ウェブサーバーのように動作する機能です。
PHPとプログラムをメモリに常駐させておくことができますので、プログラム起動時のオーバーヘッドを減らすことができます。
巨大化したPHPアプリケーションで、レスポンスを上げるのに役立つはずです。
2.基本的な使い方
まず、サーバーの処理をするPHPのプログラムを作り、サーバーのディレクトリに保存します。
そして、そのディレクトリをカレントにして、以下のようなコマンドを入力します。
php -S 0.0.0.0:<ポート番号> ファイル名
例えば、router.phpというPHPで、8000番ポートへのリクエストを処理するなら、以下のコマンドを入力します。
php -S 0.0.0.0:8000 router.php
サーバー用のプログラムでは、従来と同様に、リクエストに応じてprint等の文で結果を返します。
例えば、router.phpの内容を以下のようにするとします。
print 'Hello, world.';
そして、サーバーを起動した後、クライアントのWebブラウザで、「http://サーバーのホスト名:ポート番号/」にアクセスします。
すると、Webブラウザに「Hello, world.」と表示されます。
3.リクエストの振り分け
従来のPHPのプログラムと同様に、$_SERVER['REQUEST_URI']で、リクエストされたURIを得ることができます。
また、$_GETや$_POSTの変数も使うことができます。
これらの変数を利用して、リクエストを振り分けて、それぞれに応じた出力を行うこともできます。
例えば、「http://サーバーのホスト名:ポート番号/login.html」にアクセスがあった時には、ログインのページを出力したいとします。
また、「http://サーバーのホスト名:ポート番号/admin.html」にアクセスがあった時には、管理画面のページを出力したいとします。
また、上記以外のアドレスにアクセスがあった時には、「Not Found」を出力したいとします。
この場合だと、以下のようなプログラムを作り、サーバーとして起動します。
<?php if (preg_match('/^\/login.html/', $_SERVER['REQUEST_URI'])) { ログインページを出力 } else if (preg_match('/^\/admin.html/', $_SERVER['REQUEST_URI'])) { 管理画面のページを出力 } else { header('HTTP/1.0 404 Not Found'); print 'Not found'; } ?>