TAKAGI Masahiro
matak****@osk2*****
2006年 2月 28日 (火) 12:44:49 JST
高木です。 At Mon, 27 Feb 2006 23:42:48 +0900, TAKAHASHI Kunihiko wrote: > > > あと、少し気になったのですが、Request#dispatchAction() に記述されてい > > る以下の 2 行には何か意味があるのでしょうか? > > > > > $action = preg_replace("/_x$/", "", $action); > > > $action = preg_replace("/_y$/", "", $action); > > > > ざっとソースを眺めた限りでは、どのような意図があるコードなのかがうまく > > つかめませんでした。 > > > <input type="image" name="dispatch_foo"> 対策ですね。 > At Mon, 27 Feb 2006 23:46:49 +0900, kazunobu ichihashi wrote: > > <input type=image name="hoge" src="hoge.jpg"> > のように画像ボタンでSubmitした場合にクリックした画像の位置座標が > POSTされてしまうので、その対応ですね。 > なるほど、そういうことだったんですね。「テストコードの消し忘れ?」「何 かの隠し機能?」といろいろ考えていたのですが、これですっきりしました。 At Mon, 27 Feb 2006 23:42:48 +0900, TAKAHASHI Kunihiko wrote: > > もともとブラウザからは「dipatch_foo.x/dispatch_foo.y」がきてると > 思うのですが(画像のクリックポイントの座標が渡ってくる。ここまでは > 知っていた)、PHPが「.x/.y」を「_x/_y」にしちゃってるんですよね。 > (東京のPHP勉強会でPHPはなにかやばくなると「_」に変換するぞルールが > あると聞いたことがあるんですがそんな感じ) > よく見たら、しっかりマニュアルにも明記されていますね。 http://phpdoc.m-takagi.org/language.variables.external.html#language.variables.external.form.submit http://phpdoc.m-takagi.org/language.variables.external.html#language.variables.external.dot-in-names PHP のソースコードでいうと、main/php_variables.c の以下のあたりでしょ うか。 > /* ensure that we don't have spaces or dots in the variable name (not binary safe) */ > for (p=var; *p; p++) { > switch(*p) { > case ' ': > case '.': > *p='_'; > break; > } > } -- 高木 正弘 mailto:matak****@osk2*****