タグ

ブックマーク / shimooka.hateblo.jp (6)

  • README.UNICODEの要約 - Do You PHP はてブロ

    PHP6からネイティブUnicodeサポートが始まるわけですが、実のところ、どういうものなのかよく分からなかったりします;-) で、ソースに付属するREADME.UNICODE(リビジョン1.8)を要約してみました。 README.UNICODE 間違いがあれば指摘をお願いします。 内部はUTF-16 ICUを利用する ICUでサポートされているエンコーディングが利用可能 文字リテラル、HTTPリクエスト、PHP識別子は全てUnicode unicode.semantics = On/OffでUnicodeサポートを切り替える Offの場合、文字リテラルはバイナリ扱い fallback encodingを指定しない場合、UTF-8となる unicode.runtime_encodingでバイナリ文字列変換のエンコーディングを指定 キャスト (binary):バイナリ文字列 (unicode

    README.UNICODEの要約 - Do You PHP はてブロ
    wacky
    wacky 2007/09/11
    PHP6のネイティブUnicodeサポートについて要約。
  • 「リファクタリングが必要」という兆候 - Do You PHP はてブロ

    リファクタリングはPHPに限った話ではないですが、PHPを使っている場合に「どういった兆候が現れるとリファクタリングした方が良いか」といった話がまとめられています。 I have had to go through a php application recently which has given me more than one headache and has required me to use all my possible patience. あまり目新しいものはないかも知れませんが、以下要点を訳してざっとまとめてみました。間違いがあれば指摘してください :-) グローバル変数 グローバル変数の上書きしている アプリケーション全体でスーパーグローバル変数($_REQUEST、$_POST、$_GET)を使っている 大量のブラケット 以下のようなコード <?php $variab

    「リファクタリングが必要」という兆候 - Do You PHP はてブロ
    wacky
    wacky 2007/06/06
    リファクタリングが必要になるPHPコードとは。
  • Yahoo! が PHP エンジニアを雇う時に聞く質問

    via.Yahoo!PHPエンジニアを雇う時に聞く質問 | IDEA*IDEA とりあえず適当に訳してみました。間違いがあれば指摘をお願いします :-) 1.配列usersに「john」を追加しないのはどれか? 1. $users[] = ‘john’; 2. array_add($users,’john’); 3. array_push($users,‘john’); 4. $users ||= ‘john’;2. sort(), assort(), ksort()の違いを述べよ。また、どういった状況で利用するかを述べよ。 3. 以下のコードは何を出力するか?それはなぜか? $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num;4. 参照と通常の変数の違いを述べよ。また、どのように参照渡しをす

    Yahoo! が PHP エンジニアを雇う時に聞く質問
    wacky
    wacky 2007/05/24
    「Yahoo!がPHPエンジニアを雇う時に聞く質問」の日本語訳。(→ 解答: http://d.hatena.ne.jp/shimooka/20070529/1180432447
  • Do You PHP はてな - 出力バッファとflush()・ob_flush()

    しばらく使わないとすっかり忘れてしまうので、まとめてメモ。 ありがちなネタとして、 プログレスバー(進捗状況をリアルタイムに表示) 「お待ちください」と表示させて裏で処理を実行し、処理が終わったら結果を表示する などがありますが、これらを行うには出力データのバッファリング/フラッシュを行うことになります。 で、PHP的にはob_*関数やflush関数を使うことになりますが、[PHP-users 18135]プログレスバーは実現可能か?のスレッドから flush()が動作する条件は、出力バッファが無いこと ob_flush()が動作する条件は、出力バッファのネストレベルが1であること 出力バッファのネストレベルはob_get_level()で取得できる output_handler、output_buffer(> 0)を指定すると、ネストレベルが変わります という注意点が挙げられます。 たと

    wacky
    wacky 2007/04/30
    PHPのob_*関数やflush関数を使ったバッファリング処理の注意点。
  • リフレクションと__get/__setメソッドを使ってtypesafeを実現する - Do You PHP はてブロ

    リフレクションと__get/__setメソッドをうまく使って実現する方法が紹介されています。 I always disliked the way PHP handles Objects. There is no way to assign a type to properties. Validators have to be glued against the fields externally and you can't just generate a Object-Description (like WSDL) from a object either. 掲載されているコードをざっとまとめてみました。PHP5.2.1で動作確認しています。リフレクションのgetDocCommentメソッドを使って、コード内のコメントに定義された型情報を取得しています。この辺は参考になります :-) なお

    wacky
    wacky 2007/02/22
    PHPクラスのプロパティのtypesafe(型保障)を実現するコード。コメントに定義された型情報を取得するのが面白い。
  • GMailFeedクラス - Do You PHP はてブロ

    ちょっと今更なネタですが、個人的には最近になって知ったので。。。;-) GMailのFeedはhttps+BASIC認証なので、取得する仕組みとしてはさほど難しくはありません。phpclassesではGmAtomが登録されていますが、curl拡張モジュールが必要です。まあ、最近はbuildするようにしているので問題はないのですが、curlを使わずにできないかなぁ、と。 ということで、PHPマニュアルにあったStream拡張のサンプルを使って、新着メールを取り出すクラスを作ってみました。結構便利ですよ > Stream拡張 <?php /** * GMailFeedクラス * * @author SHIMOOKA Hideyuki <shimooka@doyouphp.jp> * @create 2006/11/12 */ class GmailFeed { private static $

    GMailFeedクラス - Do You PHP はてブロ
    wacky
    wacky 2006/12/02
    Gmailの新着メールを取り出すPHPクラス。ストリーム関数を利用。
  • 1