PHP
Windowsだとこんな感じ。 echo dirname("/foo/bar"); // => "/foo" echo dirname("/foo"); // => "\"Linuxだともちろん、"/"になる。ていうか、 http://www.php.net/manual/ja/function.dirname.php なにこれ。
ちょっと前なんですが、 セキュアな PHP アプリケーションを作成するための 7 つの習慣 について、「大手さんだから安心」? - がるの健忘録 から、「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い - ockeghem(徳…
PHPコードをページからPOSTしてevalする - なんたらノート 第二期で作ったスクリプトを使って、 system("ls -al /etc"); system("cat /etc/httpd/httpd.conf"); なんかを実行すると超便利(超危険)だということに気づいた。相手サーバのシェルにつなげない状…
PHPTALのチュートリアル http://phptal.org/manual/en/split/firstexample.html を、 プレーンなHTML(出力結果のダンプ) ネイティブPHP 5.2 Smarty 2.6.20 PHPTAL 1.1.3 のそれぞれで書いてみて、ベンチマークを取ってみました。(ただし、テーブルに流し込…
メタ言語としてPythonを使い、PHPの変数やらリファレンスやら周辺の、ランタイム実行モデルを表現してみた。あの変な「リファレンス」ってやつの正体はなんなのか、ってね。今の自分の解釈を書き留めておきたいんだけど、いくら自然言語で説明しても、マニュ…
忘れそうなのでメモ。格納順序が不自然で、インデックスは連続している配列があるとする。 Array ( [0] => 0 [1] => 1 [2] => 2 [5] => 5 [4] => 4 [3] => 3 )foreachでは格納順に処理される。 $e){ echo "[" . $i . "]=". $e . " "; } echo "\n"; ?> [0]=0…
ありがちかもしれないけど、PHPコードをページからPOSTしてevalする対話的プログラムの窓口を書いてみた。CLIが封じられてる環境だと、エディタ→FTP→ブラウザ→ソースを見る→エディタ→FTP→ブラウザ→...がめんどくさいので。あと、管理で楽するために、「テス…
Kohana2は急激に良くなっている。こっちは 宣伝に偽りありで申し訳ございません -- CodeIgniter自体は急激に変わっていない - なんたらノート 第二期 こんなことなく、個人的な感覚とは関係ないお話。よくあるフレームワークと違わないと思って名前しか知ら…
CodeIgniterにリレーション解決をサポートするライブラリを書きました。librariesに入れてload->library()で使います。CodeIgniterにはSQLクェリビルダはあるけど、エンティティの関連性を補助する機能がまるでありません。あるレコードに関連する別のレコー…
Pythonでいう、 o = some_oblect() n = 'new_field' setattr(o, n, 'new value') で、JavaScriptでいう、 o = new Object(); n = 'new_field'; o[n] = 'new value'; をPHPでやりたい。 $n = 'new value'; ?> が正解。これを思いつかず、APIを探して見つから…
http://d.hatena.ne.jp/tanakahisateru/20080924/1222190229 を受けて、 http://angelicwing.net/diary/5012.html と思われたみたい。宣伝に偽りありで申し訳ありません。えぇと、そうです、CodeIgniter自体が急激に良くなってるわけじゃないです。彼が主観…
構文チェックを厳しくしてると、 PHP Notice: Undefined offset: 3 という警告が出る。でも、 --警告なし --警告なしでなぞの非表示値が表示されてる 配列アクセスと同時に実体コピーが起こるとだめっぽい。配列アクセスと実体コピーが別の文ならいいらし…
CodeIgniterが急激によくなってきた - なんたらノート 第二期で書いた、 バリデーションがダサいまずライブラリのメソッドの中身に「$_POST」がハードコーディングされているため、任意の変数をバリデートできない。 バリデーションは「何らかの境界で、正体…
CodeIgniter(CI)は"?"以降のクエリ文字列を綺麗に無視し、$_GETを空っぽにしてくれる。CI曰く「パスベースのルーティングがあれば、クエリ文字列なんて要らない」もしくは「GETリクエストにオプションパラメータなど許してはいけない」だそうな。おいおい、…
http://webbingstudio.blog10.fc2.com/blog-entry-564.html からはじまり、 http://d.hatena.ne.jp/riaf/20080922/1222056153 http://d.hatena.ne.jp/bobchin/20080923/1222148540 http://d.hatena.ne.jp/iakio/20080923/1222161332 http://d.hatena.ne.jp/s…
CodeIgniterを評価しました。申し訳ないけど、このブログエントリの著者が学生さんだと知りつつ、きつく批判します。 CodeIgniterの嫌な部分 | Oddwit 某巨大掲示板でも、このブログと同じような議論がありました。 これを批判することが、CodeIgniterの良さ…
.htaccessでphp.iniのオーバーライド このエントリは2007/02/03の再掲です PHPは、その適用されている範囲の広さにもかかわらず、JavaEEのサーブレット仕様のように、アプリケーションコンテキストという環境設定単位を持ちません。そのため、ひとつのWebサ…
このエントリは2007/06/21の再掲です ひとつのロケールに複数の文字エンコーディングがある、日本語のような言語では、ひとつの動的Webページを書くだけでも、部分ごとにエンコーディングの向き不向きがあります。多くのWebブラウザがShift_JISを好むことか…