PHP

暗黙に型変換される演算子

PHP

ref:http://d.hatena.ne.jp/mono-hate/20080329/1206790742 ちょっと違うなぁ。bool を number として評価するコンテキストではないよ。 詳しくは以下。 ref:http://www.php.net/manual/ja/language.operators.comparison.php 「false == 0」の場合、第1オペ…

PHPの命名規則

PHP

配列への push が array_push で、ファイルのコピーが copy っていうのはいったいどういう了見だこのやろう。

PEAR::isError

PHP

query($sql, $params); if (PEAR::isError($rs)) { return $rs; } $data = array(); while ($row = $rs->fetchRow(MDB2_FETCHMODE_ASSOC)) { if (PEAR::isError($row)) { return $row; } $data[] = $row; } return $data; } ?> PHP4 で Java みたいにエラー…

TeX Plugin

数式を楽に書きたいなぁ、ということで TeX Plugin とかでっち上げてみた。そんなにきれいな表示を求めてないなら、この程度でもそれなりに役に立つかなぁ。 要望があればそのうち mimeTeX とか入れるかもしれない。

readfile

PHP

そういえば、PHP の readfile って、ファイルの内容を出力するだけの関数なのにファイルの内容を全部オンメモリに載せるというアレな実装だった気がするのだが、この間試したらそんなこと無くて、アレ?と思ったのだよな。 で、ちょっと確認してみたら PHP 4…

メールした

PHP

ref:http://phpspot.org/blog/archives/2008/02/_phpdlphp.html 訂正記事が出て、私の書いた記事にもリンクがあるようなのだが、内容が相変わらずというか、こんな個人の日記を鵜呑みにしてないできちんと確認しろよ、とかおもったので、取りえずメールして…

Content-Disposition

ref:http://phpspot.org/blog/archives/2008/02/phpdlphp.html ref:http://b.hatena.ne.jp/entry/http://phpspot.org/blog/archives/2008/02/phpdlphp.html phpspot もどうかと思うが、これでブックマークが 280 とかついているのをみると、 これだから PHP …

preg_match のキャプチャ #2

PHP

hnwさんが「おそらくバグ」といっているのだけど、どうなんだろ、これは。 とりあえず PCRE を直に叩いてみた。 #include <iostream> #include <iterator> #include <algorithm> #include <pcre.h> using namespace std; static const int OVECTORSIZE = 30; int main() { const char *error; int er</pcre.h></algorithm></iterator></iostream>…

PHPでクローじゃもどき

PHP

ref:http://d.hatena.ne.jp/amachang/20080129/1201580172 ref:http://www.kmonos.net/wlog/81.html#_1708080129 うはは。 まぁ、私もできるよなぁと思ったんだけど、やろうとして頭が沸騰したのであきらめた。 で、なんか addslashes より var_export のほ…

preg_match のキャプチャ

PHP

% php test.php Array ( [0] => abc [1] => a [2] => b [3] => c ) Array ( [0] => ab [1] => a [2] => b ) Array ( [0] => ac [1] => a [2] => [3] => c )最後のキャプチャがな…

相変わらず phpspot は

PHP

ref:PHPで、文字列と数値0の比較は等価になるようです:phpspot開発日誌 ref:PHPで「特定」文字列と数値0の比較が等価になるカラクリ:phpspot開発日誌 今頃何を言っているんだお前は、と思ったのは私だけでしょうか。FAQ レベルの話じゃね?

たまには PukiWiki などを

ref:http://twitter.com/wtnabe/statuses/466956942 PukiWiki ならプラグインを書けばさくっと実現できるよねー。 わりと適当に。といっても一応キャッシュ機構ぐらいはつけてあるけど。

array_multisort とか Schwartzian Transform とか

PHP

ref:[を] PHP の array_multisort は Schwartzian Transform 向きかな つうか、array_multisort は multi sort なんだから、sort key が複数ある場合に使うものだと思うのだが。sort key が複数あるというのは、まず著書名順で整列して同じ著者の著書は著書…

session.save_path の Permission が変

Ubuntu Gutsy の PHP は session.save_path の Permission が変な気がする。 % php -r 'echo ini_get("session.save_path"), "\n";' /var/lib/php5 % ls -ld /var/lib/php5 drwx-wx-wt 2 root root 16 2007-11-05 09:54 /var/lib/php5/ぬぅ、Apache の実行ユ…

60行で作るPHP用テンプレートエンジン

PHP

ref:60行で作るPHP用テンプレートエンジン Smarty でいいじゃん、という突っ込みはともかく、Dan さんがハッシュとのコンボとか書かれてたけど、PHP の preg_replace は複数のパターンを受け付けたりするのだよな。 だから、 function convert_string($s) { …

たまに PHP

PHP

こう、たまーに、PHP を使うとはまる。 for != foreach Perl では for と foreach は等価だけど、PHP では全く違う for ($array as $obj) と書いてエラーになってちょっと考える メソッド呼び出しの括弧省略不可 $controller->main; とかやってアレ、となる …

Ubuntu から PHP4 が消えている

Ubuntu Gutsy Gibbon のパッケージアーカイブに PHP4 関連のパッケージがない。なんてこったい。 PHP4 なんて速く捨てろとのお達しなのかな。

PHPに文句を付けている dankogai 氏にひとこと言っておくか

PHP

<p>以下の環境変数が設定されています:</p> <pre> </pre> なにはともあれ、htmlspecialchars をいれたほうがいいと思う。 なんでもかんでもぶちこめば、やたら重いApacheが出来上がるし、かといっていろいろ削ればあとでユーザーに「なんでXMLが扱えないの?」とか突っ込まれる…

ビルドがそんなに面倒?

PHP

ref:var/タワゴト(2007-02-24) via:ときどきの雑記帳 よりにもよってstr_replace()ですよ。ibase_{delete,add,modify}_user() だったら、「使ってないからバージョンアップしなくていいや」でいいんだけど。この関数は世の中の大抵のスクリプト使ってる訳で…

文字化け

PHP

ref:PHPの文字化けを本気で解決する - ぎじゅっやさん via:よくきたはてダ - 惜しいが間違っている 上鍵さんからツッコミが入ってますが、別の点を。 先ほどの例の時にも書いたが、PHPには内部エンコードという概念は存在しない。ではmbstring.interna…

isset の存在理由

PHP

なんでこんな働きが似通った関数が複数存在しているんですか? まぁ、もともと isset と array_key_exists は別のものですから。 本来、isset は「変数がセットされているかどうか調べる」ためのものであって、連想配列*1のキーが存在するかどうか調べるため…

今日のウノウラボ

PHP

ref:ウノウラボ Unoh Labs: 配列要素の存在チェック いや、まあさ、書いていることは正しいんだけどさ。以前 ウノウラボの blog でこんなことも書いてたよね? array_searchは、毎回全データを検索するので遅いです。 データに配列の順序が関係ないなら、連…

対応バージョンも安定性も気にしない

PHP

ref:PHPアクセラレータで一番高速なのはどれか? - GIGAZINE いつもの適当記事。 「PHPアクセラレータ」というのは何をしているのかというと、実行されたPHPスクリプトの中間形式にコンパイルされたデータをキャッシュディレクトリに保存することで、以後同…

配列への参照の仕方

PHP

ref:ウノウラボ Unoh Labs: 配列操作でE_NOTICE対策を簡単に行う方法 比較するだけなら、前に書いたように function equals(&$a, $b, $strict = TRUE) { return $strict ? $a === $b : $a == $b; }というやり方も。empty の比較版といった感じ。 あと、array…

PHPのパフォーマンス

PHP

PHPのパフォーマンスに関して。 単に case insensitive なマッチングをしたいだけなのに、strcasecmp じゃなくてpreg_match 使ったり、区切り文字が単純文字列なのに explode じゃなく preg_split 使う人っていうのは結構いるので、パフォーマンスがどうこう…

要素数が大きくなると遅くなる?

PHP

お隣日記のコメントから。コメントの投稿者は id:n314 さんかな? PHPの配列って、Hashだったんですか? ただの連想配列かと思ってました。PHPのソース拝んでいないので、実際のことはわからないけど、データ数が多くなると、ムチャクチャ遅くなるので、線形…

isset と array_key_exists

PHP

昨日の続き。 2. array_key_existsよりハッシュを使え array_searchは、毎回全データを検索するので遅いです。 データに配列の順序が関係ないなら、連想配列 + issetを使うほうが高速です。 連想配列の場合ハッシュの仕組みが使われるのでその分高速です。 …

PHPのイテレーションの話とか

PHP

ウノウラボ Unoh Labs: PHPのちょっとしたコツ 一時期PHPで飯を食っていた身*1として、軽く突っ込みを。 *1:といっても学生のアルバイトだが

匿名関数

PHP

技術メモ帳 - PHPで匿名関数 PHPのマニュアルにリンクするなら公式サイトの方にしたほうが User Contribution Notes が見えていいじゃないですかね。公式サイト以外のマニュアルのURLを提示するとELF上鍵さんに怒られるというのは PHP-users ML では日常茶飯…

参照代入なら警告は出ない

PHP

某所にコメントしたんだけど、PHPってなぜだか参照の代入なら警告(E_NOTICE)は出ない。つまり、 $data = array(); $a = $data[0];は2行目で E_NOTICE になるけど、 $data = array(); $a =& $data[0];ならOKだったり。しかもなぜかこの後 $a の値を参照しても…