明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

PHP

ディレクトリ内のファイルを一覧表示する

PHP

PHPを利用して、サーバ上の特定ディレクトリ内のファイルを一覧表示するスクリプトを書いてみます。 実装条件 ソフトウェア バージョン PHP 5.6.30

クラス内 static プロパティについてまとめ

PHP のクラスが持つプロパティ(メンバ変数)には、static 修飾子を付けることができます。

画像をHTMLに直接埋め込む方法

HTMLで画像を表示する場合、<img />タグを使用します。 このとき、画像のバイナリデータが取得できるなら、以下のように書くことができます。 EOF;

PHPで require_once / require を使わずにクラスをロードする

PHP でファイルを読み込む際 require_once や require を使うことになりますが、読み込むファイルが膨大になると大量の require_once / require を記述しなくてはいけなくなります。 spl_autoload_register() を使うと、読み込まれていないクラスをコールし…

確率による重みづけをしてn個のものを取り出す

X種類のフルーツ中からランダムにn種類取り出す場合、PHPなら mt_rand() などの関数を使えばすぐに実装可能です。 実装条件 ソフトウェア バージョン PHP 5.6.30

PHP でウィザード形式のページ遷移を実現する trait

Wizard とは ウィザードとは、対話形式で遷移を踏みつつ処理を進めさせるためのユーザインターフェイスのことです。 ウェブでは、複数ページにまたがるフォームなどで実装されています。 ウィザードを実装するためには、遷移途中の入力データや今どのページ…

ジェネレータを利用した MySQL データの抽出

DBテーブル上にレコードが大量にあり、これをプログラムでループさせながら処理したい、というケースは非常に多くあります。 この場合、大量にあるレコードを配列に格納することで、よく問題になるのが使用メモリの肥大化です。 PHP5.5以降で実装されたジェ…

HTTPレスポンスを返した後も処理を続ける方法

PHP

HTTPリクエストを受け取ったWEBサーバは、そのプロセスで処理をすべて実行した後にレスポンスを返却します。 この処理に時間がかかることが予想されるとき(たとえば30秒でタイムアウトするリクエストで40秒かかるとか)、プロセス内で別のプロセスを起動し…

クラスにメソッドを動的に追加する trait

PHP

実装済みのクラスに、あとからメソッドを動的に追加することができるようにします。 実装環境 ソフトウェア バージョン PHP 5.6.30 ※ ただし trait 自体は PHP5.4 以降で利用可能