ヌルイネタ二つ。



              坂本昌彦
          id:msakamoto-sf
             2008-03-15
      第2回PHP懇親会発表資料
sakamoto-gsyc-3s@glam...
誰?

                       81世代。
                 PHP, Javaプログラマー
               株式会社エヌ・エス・ディ所属
              事務所は立川だけど新宿中...
誰?その2

       隠れPerl信者(修行中)です。
       オレオレフレームワーク派。
          Xhwlay, Pseudo_Block
         最近はsymfonyに白旗。
       CakePHPに...
本題に入る前に



      LINDさん、
    ファン・デリさん、
   主催および会場提供
ありがとうございますです~~。
      ヽ(´ー`)ノ
ヌルイネタ:1点目



                                var_export()
           http://jp.php.net/manual/ja/function.var-export.php

...
var_dump()に隠れて見えない可哀想
                 な子です。



                                                                    文字通り桁が...
変数のダンプをログに出したい時


                  「こんなコード、書いてませんか?」

                                   ob_start();
                    ...
var_export()はデキル子デス。

                                         「これでok。」

                        $data = var_export($vars,...
ヌルイネタ:2点目


                         explode()関数の
                            第3引数
                           quot;int $li...
目立たなくて忘れ去られてる感。




           そう感じてるのは自分だけ?

           一応、マニュアルページにもExample2として$limitの使用例があるのだけれど・・・。




結論として、PHP4.2.0...
あんまり上手い例が見つからない。

      区切り文字でバラした時に、要素数が足りない場
      合はデフォルト値nullで済ませて良い場合とか、区
      切り文字が想定より多く含まれていても、想定通り
       の数までにバ...
以上。

         質疑応答?:
「こんな『忘れられてるけどデキル子』いるよ!」
        という方、挙手!
          ( ・ω・)∩

var_dump <> var_export : 出力形式が違う!
    Obj...
Upcoming SlideShare
Loading in …5
×

第2回PHP懇親会発表資料

1,536 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,536
On SlideShare
0
From Embeds
0
Number of Embeds
42
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

第2回PHP懇親会発表資料

  1. 1. ヌルイネタ二つ。 坂本昌彦 id:msakamoto-sf 2008-03-15 第2回PHP懇親会発表資料 sakamoto-gsyc-3s@glamenv-septzen.net
  2. 2. 誰? 81世代。 PHP, Javaプログラマー 株式会社エヌ・エス・ディ所属 事務所は立川だけど新宿中心に ぐるぐる出向したりしてます。 お仕事:Javaでソケット通信とか。 (何か4月からはRubyやりそう) PHP:趣味。会社としては殆どやってない。 IPAで、「安全なウェブサイトの作り方 改訂第3版」が公開されましたね。読んでて気になったのですが・・・。
  3. 3. 誰?その2 隠れPerl信者(修行中)です。 オレオレフレームワーク派。 Xhwlay, Pseudo_Block 最近はsymfonyに白旗。 CakePHPにも手を出したけど 肌に合わなくてAkelosに逃げて、 結局ActiveRecordを理解してないだけじゃないか と反省中。 っつーかAkelosはADODBそのまま使えるので AR全然つかってねぇ。 食わず嫌いを直したいです。
  4. 4. 本題に入る前に LINDさん、 ファン・デリさん、 主催および会場提供 ありがとうございますです~~。 ヽ(´ー`)ノ
  5. 5. ヌルイネタ:1点目 var_export() http://jp.php.net/manual/ja/function.var-export.php SQLインジェクションの例で、PostgreSQLの場合、pg_query_paramsのプレースホルダー文字列が quot;$1quot;, quot;$2quot;, quot;$3quot;, ... となってるじゃないですか。(p51)
  6. 6. var_dump()に隠れて見えない可哀想 な子です。 文字通り桁が違う。 (2008/03/15 10:30時点) ADODBではDBMSに依らず quot;?quot; で統一されてる(oci8を除く?)のですが、これってどういうこと?と。ADODBのPrepare()って、本当は何してるの?
  7. 7. 変数のダンプをログに出したい時 「こんなコード、書いてませんか?」 ob_start(); var_dump($vars); $data = ob_get_clean(); your_log_func($data); 調べてみたら、プリペアクエリのquot;?quot;で分割して、それぞれのバインド値をADOConnection#qstr()というのでエスケープして、最後に連結してました。
  8. 8. var_export()はデキル子デス。 「これでok。」 $data = var_export($vars, true); your_log_func($data); 誰ですか?「serialize()使えば良いじゃん」という仰るイケナイ子は・・・。 で、このqstr()っていうのはPostgreSQL用ADODBドライバの場合、内部的にちゃんとpg_escape_string()を使ってます。
  9. 9. ヌルイネタ:2点目 explode()関数の 第3引数 quot;int $limitquot; http://jp.php.net/manual/ja/function.explode.php また、PostgreSQL用ADODBドライバは、{Set|Get}CharSet()で、pg_(set_)client_encoding()にアクセスできます。
  10. 10. 目立たなくて忘れ去られてる感。 そう感じてるのは自分だけ? 一応、マニュアルページにもExample2として$limitの使用例があるのだけれど・・・。 結論として、PHP4.2.0以上 && PostgreSQL 7.2 以上であれば、ADODBの場合、pg_escape_string および pg_set_glient_encoding()を用いて適切に処理できます。
  11. 11. あんまり上手い例が見つからない。 区切り文字でバラした時に、要素数が足りない場 合はデフォルト値nullで済ませて良い場合とか、区 切り文字が想定より多く含まれていても、想定通り の数までにバラす要素数を制限したい場合。 CSVファイル処理、というよりは一般的な文字列→ 配列変換の時に使えるシーンがあるかも。 ばらした後のcount()で補正する手間が省ける時に 便利。 皆さんお遣いのDBドライバライブラリはどうでしょうか?ちなみに、まだPostgreSQL 7.1 などで動かしているレンタルサーバもあるのでご注意を!
  12. 12. 以上。 質疑応答?: 「こんな『忘れられてるけどデキル子』いるよ!」 という方、挙手! ( ・ω・)∩ var_dump <> var_export : 出力形式が違う! Objectが扱えない?←いや、これは さすがに扱えます。

×