phpDocumentor 2 で使える型名

PHP

@var @return @param に使える型の書き方です。 1.4. Definition of a ‘Type’ — phpDocumentor v0.13 documentation のまとめ。 Keyword 基本型など PHP の型 null string integer (int) boolean (bool) float (double) object array resource PHP の疑似型 …

PHP でシェルスクリプトを作成し、制御をシェルに戻したい場合

PHP

proc_open() で、 PHP が作る子プロセスの stdin/stdout/stderr と、 PHP プロセス自体のそれらを繋ぐ。 具体例 大量にある MySQL サーバに簡単にログインできるようにするためのスクリプトを書きたい。 実装例 mysql_connect.php (実行権限つき) #!/usr/bin…

【再訪】重みを持つ要素の配列から、ランダムに1つ選択する。

http://hirobanex.net/article/2011/12/1324792864 http://blog.livedoor.jp/dankogai/archives/51761113.html似たようなのを 以前 書いたので、改めてまとめただけ。 使い方 /** * weight は 1 以上の整数。 * 合計を 100 にしなければならない……なんてこと…

MySQL によるランキング管理

CREATE TABLE ranking ( user_id INT UNSIGNED NOT NULL COMMENT "ユーザID", score INT NOT NULL COMMENT "順位付けに使う値", rank INT UNSIGNED NOT NULL COMMENT "順位", PRIMARY KEY (user_id), INDEX USING BTREE (score) ); user_id score rank 1 100…

携帯用ページ上における各種SNS連携方法まとめ

mixi (mixiチェック) <form method="POST" action="http://m.mixi.jp/share.pl?guid=ON"> <input type="hidden" name="charset" value="shift_jis もしくは utf-8 。デフォルトは shift_jis" /> <input type="hidden" name="check_key" value="識別キー" /> <input type="hidden" name="title" value="リンク先のタイトル (charset の文字エンコーディング)" /> </form>

gcc4.4環境でswfmill-0.2.12をコンパイルする

パッチを書いた。 KLabさんとこのエンコーディングパッチ充ててからやってください。コンパイル例 wget http://swfmill.org/releases/swfmill-0.2.12.tar.gz tar xf swfmill-0.2.12.tar.gz cd swfmill-0.2.12 wget http://lab.klab.org/files/flash/encoding…

重みを持つ要素の配列から、ランダムに1つ選択する。

地道に for だの使って処理してもいいんだけど、配列の要素の数が巨大になったときのパフォーマンスが心配だったので、二分探索にしてみた。 例えば、 『数十種類あるメッセージのうち1つをランダムに表示したいけど、うち数種類はレアにしたい』 みたいな時…

稼動中の ttserver をデュアルマスタ化した。

現状 192.168.1.1:1978 で ttserver が稼動中。 バックアップも何もないので、二重化したい。 目標 192.168.1.1:1978 (Server.A) と 192.168.1.2:1978 (Server.B) でデュアルマスタ化して、バックアップついでに可用性も確保する。 方法 Server.A の起動コマ…

VMware Player をサービス化する。

sexe をインストール。 sexe 起動 ファイルに vmplayer.exe を指定。 起動時オプションに vmx ファイルのフルパスを指定。 サービスの名前は適当に。 OK 。サービスがインストールされる。 管理ツール→サービスを開き、インストールしたサービスのプロパティ…

何ていえばいいのこのパターン

PHP

マルチバイト対応 preg_match_all

PHP

他に書くこと考えなきゃなあ。 preg_match_all() のマルチバイト文字列版、 mb_ereg_all() 。 第 3 引数が省略できない。 (PHP 4 対応の為) PREG_OFFSET_CAPTURE 未対応。 確か、やたら面倒になりそうだったから。覚えてない。

PHP の型検査を模倣する。

PHP

今日も常用している関数を晒してみる。 bool cast_arg(mixed &$given, int $expect[, int $offset]) 値の型を検査する。 http://xif.jp/php/cast_arg.phps 利用方法。

IP アドレスから携帯キャリアを判別する。

127.0.0.1 のようなドット表記の IP アドレスから、携帯キャリアを判別する関数を生成します。 検索部分は http://d.hatena.ne.jp/tasukuchan/20071231/1199105717 を参考にしました。 異なる部分として 全部 PHP 。 IP アドレスは手動設定。 フルブラウザの…