php

PHPのhtmlentities()で (HTML4.0的に) 余計に実体参照に変換されてしまう文字の一覧

Bug #46478でid:hnwさんに報告していただいたバグを修正しようと思って作成したものですが…そもそもこのバグを作ったのは私で、5年くらい前の話になりますが、HTML4.0でサポートされている実体参照のテーブルではなく、Unicode 1.1 以降は obsolete となって…

なぜPHPのfgetcsv()はロカール依存という糞仕様なのか

前から言われてる、これ。(id:hnw さんも、もしかしたらこれは私が実装したということを知っていて自粛してるのかもしれないけど、そういう気遣いは不要です!)まあつまりですね、もともとfgetcsv()は「\」(0x5c) で次の文字をエスケープできるという割と不…

鬼車+Unicodeの\[\[:print:\]\]はPOSIX流じゃないらしい

追記: どっちが正しいとかそういう話ではないので念のため...。 追記2: Technical ReportがAnnexとなっていたのを修正。 追記3: 微妙に誤解があった部分を修正。結論としては同じ。id:ockeghem さんの、 「POSIX正規表現の[:print:]は改行やタブがマッチする…

SORT_REGULARはまあREGULARであってる

「PHPのsort関数は相当おかしい」のどこがオヤジギャグなのか一目で気づかなかった人は、PHPを今後使わないことを検討してください (俺含む)。さて、なんか「なんでこれが『SORT_REGULAR』なの?」「The language developed only by retards」とか「これがデ…

PHP5.3のクロージャの謎というかPHPだから謎なんてない!な挙動

zend_compile.c を読んでいて気づいた。 これの結果が int(4)となる。摩訶不思議。みんな大嫌いなクロージャのuseキーワードは、5.1から導入されたcompiled variables(CV)という、ローカル変数アクセス高速化のための機構の実装が腐っているために導入され…

分け入っても分け入っても...

mb_check_encodingは何をチェックするのか(その3 UTF-8編)で指摘していただいた (thx!) バグを直しているときに気づいた。みんなよく聞いてくれ!悪いのはmbstringだけじゃないんだ!といって自己正当化してみるテスト。 結果 string(3) "123" string(8) "&…

PHPスクリプトでテンプレートの継承できたよ\(^o^)/

追記: 一部文字を実体参照化してなかったのを修正。typo修正。タイトルは若干 (というかかなり) 釣り。改造したPHPでテンプレートの継承 (もどき) をできるようにしてみた。ローカル変数が受け継がれないとか、まだまだ実用には耐えられるものではないので、…

Memcache拡張モジュールを透過的に扱えるパッチを書いてみた。

PHPなんだから透過的にmemcachedとか扱えないとまずいでしょうということで。要はphp.iniに # 以下の書式が利用可能 # hostname # hostname:tcpport # hostname:tcpport:udpport # [hostname] # [hostname]:tcpport # [hostname]:tcpport:udpport memcache.a…

Python温泉でやったことのまとめ

実はPython温泉に行っていました。 1日目 夕方まで仕事のバグハンティング。 Boost.Asioを触ろうとコードを書き始める。 途中でBoostをMac OS XのframeworkにしたくなってきたのでBoostのビルドシステムの調査を開始。 夕食。奇妙な自己紹介 (「はじめにお詫…

kmyaccのPHP対応パッチをリエントラントにしたよ

今回作ったものをどう簡単に説明できるかわからないけど。id:kmori58さんによるyacc系パーサジェネレータkmyaccを「ベイエリア情報局: PHPのyaccを作ったよ」でbtoさんがPHPに対応させたものをさらに拡張して、クラス形式のパーサを生成できるようにしてみま…

kmyaccで$の扱いを柔軟にするパッチ

PHP+kmyacc (あるいはperl+kmyacc) を使うときに面倒なのが意味値 (semantic value) を指定するときに使う「$」の扱い。$$ とか $1 とか $ とか $-1 とか以外は普通に変数として見てほしいのにそのへんは甘くない。なので強引にパッチあてて回避。WTF factor…

おれおれWebアプリフレームワークを勢いで(しかもPHPで)書いてみた

はじめに いったい、一日に何個のフレームワークが生まれているのだろう。そんな疑問が浮かぶほど、PHPによる (Webアプリ) フレームワークの数は尋常じゃない*1。そして、PHPほどプログラマにフレームワークを書かせる気にさせる言語も他にはないんじゃない…

PHP Con 前日Hackathonに参加してきましたー

id:kunit さん超おつかれですー。ちなみに、私はMozo.PHPのPHP 5.3対応とオブジェクト対応をやりました。追記: id:masaki-fujimotoが本気を出してTokyo Dystopiaの拡張モジュール書いたみたいなのでみんなで使い倒しましょう。

PHPerはもっと__toString()を使ったほうがいい

PHP

(前回までのあらすじ) 「PHP」とは最近流行の、ドメイン固有言語だったものが汎用化してえげつなくなったスクリプト言語です。 val = $val; } function __toString() { return htmlspecialchars($this->val); } } $vars = array( 'a' => '<test>', 'b' => '<aho>', 'c' </aho></test>…

Mozo.PHPのアーカイブを更新しました。

オレンジニュースにて紹介していただいたようなので、ダウンロードのリンク先を修正しておきました。RSSリーダで再度上に上がってきてしまった方、すみません。こちらにも念のため: http://voltex.jp/downloads/mozo-php-20080405.tar.bz2

GNU Pthを使って、PHPでユーザスレッドを実現する

のをやってみた。もうちょっと作り込んでから、と思ったけど、まあまあまともに動くので先に公開。次のようなスクリプトがさくさく動いちゃうよ!

Mozo.PHP をレポジトリに上げました。

ちょ、freehg.org は神。http://freehg.org/u/moriyoshi/mozo-php/を参照してくださいまし。ついでに PHP の parser と lexer を C++ に移植したやつ。 構文木作るとこ*1まで行ったままで止まっているこの子を誰か拾ってください。http://freehg.org/u/moriy…

Mozo.PHP (その3)

今日の最初の方にリリースしたものはメモリリークします。 本気で使っている方はここから最新版を再度落としてください。 エラー処理 (1) C++ の関数からエラーを出して呼び出し元に復帰したいときは、mozo::php::runtime_error を throw します。 throw php…

Mozo.PHP (その2)

(追記: タイトルの一部にタグを入れているところが正しくタグとして認識されなかったので直しました。重複RSSエントリが発生したらすみません。) 前日の続き。ダウンロードはここ。主な変更点: std::string を戻り値にできないバグの修正。 HashTable の変換…

Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」

えー、久しぶりにですます調です。本日の第2回PHP拡張勉強会でグダグダながらもちょこっと発表させていただいた、あのライブラリについての紹介です。ダウンロードは以下からできます。 http://www.voltex.jp/downloads/mozo-php-20080324.tar.bz2 最新版は…

PHP: ext/bz2 のマルチチャンク対応

http://www.voltex.jp/patches/php-bz2-multiple-chunks.20071229.patch.diff.bz2ストリームフィルタと bzdecompress() / bzcompress() は直してません。気が向いたらやります。 (というか誰かやって) Index: ext/bz2/bz2.c ===============================…

OpenCV-PHP拡張モジュールのアップデートのお知らせ

『OpenCV の PHP バインディングを書いてみた』から早 6 ヶ月も経過、すっかり本人が存在を忘れていた OpenCV-PHP バインディング。最近この日記のコメント欄で (おそらく) 海外のクレクレ君から「Windows 版の DLL くれ!俺はテンパってるんだ!」と言われて…

A remarkable lack of... uh.. something you have always wished were there.

そこで、Fowlerは嘆いた。 Not that all is good, however. There is a marked lack of women in the ruby community which, apart from the fact that we're missing out on some serious talent, probably is a sign of other problems within the communi…

WTF in Kabuki-cho?

これ、何て Life Hack?

まえもいったけど

PHP

国内外問わず、PHP を言語としてしか見てない人の意見はつまらないね。あれってまあ awk に毛が生えたような言語に簡易的な Web アプリケーションフレームワーク (今でこそそんな言い方をしたら笑われるだろうが) がくっついてきて、しかもインストールが簡…

Seaside ライクな PHP5 用 Webアプリフレームワーク「Phaux」

(via 「HREF Considered Harmful」) ステートフルなやつですね。ステートフルといえば、国産のだと「Piece Framework」がありますけども。むしろPradoの近縁とも言えるでしょうか。追記: リンク書き忘れてました。 http://code.google.com/p/phaux/

bugs.php.netのフィード

とある出来事がきっかけで人間不信になりPHP developerとしての活動を休止してからしばらく経つけど、ふと気になったので2006年の夏ごろからメールを見直していたところ、掘り出し物を発見。Andiのこの投稿で始まるスレッド「RSS feed for bugs.php.net」。…

filetype:php で Google 検索すると楽しい

ことに気づいた。もう皆さんご存知ですよね。すみません。site:go.jp とかつけないようにお願いしますね。いや、PHP が悪いんじゃないよ!!!!!!!!

OpenCV の物体認識を動画に適用する

4/8追記:拡張モジュールのダウンロードリンクは一番下にあります。今回は自動的に顔にボカシを入れるスクリプトを書いてみました。しかし、対象となるのは静止画ではなく、動画です。ソフト・オン・デマンドの開発したという全自動デジタルモザイク処理シス…

あなたがRoRを使わない10の理由に違和感を感じる幾多の理由

別に個人的にGREEでEthnaを使ってたから、とか藤本さんと個人的に知り合いだからだとかそういう理由じゃなくても、ここでEthnaが引合いに出されるのはやっぱり違和感がある。だからあえて書く。勘違い君を増やしたくないので、ネタにマジレス。Ethnaってあの…