タグ

ブックマーク / hnw.hatenablog.com (7)

  • PHPでHTTPの並行ダウンロードを実現する(Guzzle編) - hnwの日記

    PHPで最近注目のHTTPクライアントライブラリにGuzzleがあります。日での知名度はまだまだという印象ですが、かなり高機能かつ真面目にメンテナンスされている印象で、今後のデファクトスタンダードになりうるライブラリと言えるでしょう。 稿ではこのGuzzleを使ってWebサーバから並行にダウンロードする方法を紹介します。Webブラウザのように同時に複数コネクションを管理しながらKeep-Aliveでコネクションを使い回しますので、下手なコードで実現するより接続先Webサーバにも優しいはずです。 Guzzleの特徴 まずは、Guzzleについて僕が特徴的だと思う点を紹介します。 パッと見でわかりやすいインターフェース cURLは必須ではないがデフォルトでcURLを使う cURLの無い環境がありうるので、cURL無しでも動くのは嬉しい cURLのわかりにくいインターフェースを隠してくれるの

    PHPでHTTPの並行ダウンロードを実現する(Guzzle編) - hnwの日記
    ryster
    ryster 2014/08/24
  • PHPカンファレンス2013でZend OPcacheについて発表しました - hnwの日記

    9月14日に開催されたPHPカンファレンス2013で発表してきました。以下が発表資料です。 マニアックな内容なのと、裏に面白そうな発表があったのでガラガラかと予想していたのですが、思った以上に盛況で驚きました。僕個人が伝えたかった内容は「PHPコア見るの楽しい」「Zend OPcacheは仕事上も趣味上も要注目」ということでした。どれくらいの人に伝わったかは不安ですが、この発表を機に興味をもってもらえれば嬉しく思います。 今回は廣川さんとテーマがかぶってしまって驚いたのですが、うっかりお昼ご飯に行っていて僕自身は廣川さんの発表を見られませんでした。プレゼン資料が公開されると嬉しいのですが…。 また、anatooさんやYahoo!の蒋さんもPHPの内部まで踏み込んだ発表をされていました。こうした発表を聞いて、「PHPのソースコードまで読んでみようかな」という人が少しでも増えてくれたらいいなと

    PHPカンファレンス2013でZend OPcacheについて発表しました - hnwの日記
    ryster
    ryster 2013/09/15
  • .gitignoreを作ってくれるgiboが便利すぎる - hnwの日記

    gitignore-boilerplates(長いので以後giboと呼びます)という便利なツールを紹介します。これは.gitignoreのひな形を作ってくれるものです。 https://github.com/simonwhitaker/gitignore-boilerplates もう少し詳しく説明すると、giboは様々なOS・エディタ・言語・フレームワークなどに特化したファイルの情報を利用して、複数環境を考慮した.gitignoreを作ってくれます。 .gitignoreに入れたいファイルは環境ごとに変わってくるわけですが、各人がcommitしたくないファイルの存在に気づくたびにチマチマ.gitignoreに追記していくのって当に無駄だと思うんですよね。giboはそれを自動化してくれるというわけです。 例えば、WindowsMacOSXの2環境、Emacsとvimの2エディタを使う人

    .gitignoreを作ってくれるgiboが便利すぎる - hnwの日記
    ryster
    ryster 2013/01/03
  • PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記

    PHPのstrtotime関数やDateTimeクラスは、様々なフォーマットの日付文字列を解釈し、時刻として取り扱うことができます。たとえば次のような文字列を解釈することができます。 "Wednesday July 23rd, 2008"(=2008年7月23日) "first Wednesday July 23rd, 2008"(=2008年7月30日、PHP5.1.0以降) "first Wednesday of July 23rd, 2008"(=2008年7月2日、PHP5.3.0以降) こうした日付の解釈はPHP独自の実装です*1。当初はGNUの日付記法に準拠していたようですが*2、今や別物といっていいでしょう。にもかかわらず、これまで解釈ルールの詳細を説明するドキュメントが存在しない状態が続いていました。 そのため、仕様を推測する根拠はstrtotime関数のサンプルコードとP

    PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記
    ryster
    ryster 2011/02/15
  • PHPでメモリ上に一時ファイルを作る - hnwの日記

    blog.plastik.jp » PHP5 の fgetcsv() で読み込み内容が腐る現象」という記事を読みました。fgetcsv()だとSJISのCSVファイルがうまく読めないので、UTF-8に直してテンポラリファイルに保存してfgetcsvで読み込む、という筋書きのようです。 ちゃんとtmpfile()を使っていたりしてナイスなコードだと思います。でも、すぐ不要になるデータをディスクに書き込むのはイマイチじゃないでしょうか。ここはメモリに書いた方がカッコいいと思うんです。僕なら下記のようにします。 <?php $data = file_get_contents("example.csv"); $data = mb_convert_encoding($data, "UTF-8", "Shift_JIS"); $fp = fopen('php://memory', 'r+'); fw

    PHPでメモリ上に一時ファイルを作る - hnwの日記
    ryster
    ryster 2009/03/16
  • PHPのsort関数は相当おかしい - hnwの日記

    追記(2009/02/28 15:35):ソートする配列の要素が数値または数値形式の文字列のみの場合は、<、==、>が推移律を満たすので、この記事のような矛盾は起こりません。念のため。 オヤジギャグがこらえられなくなったら立派なオヤジだと思います。それはさておき、今日はPHPのsort関数が不思議な挙動をする例を紹介します。 sort関数の紹介 sort ― 配列をソートする 説明 bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] ) この関数は配列をソートします。この関数が正常に終了すると、 各要素は低位から高位へ並べ替えられます。 PHP: sort - Manual マニュアルをみる限り普通のソート関数です。省略可能な2番目の引数の意味は次の通りです。 sort_flags オプションの 2 番目のパラメータ s

    PHPのsort関数は相当おかしい - hnwの日記
    ryster
    ryster 2009/03/10
  • mb_check_encodingは何をチェックするのか(その1 SJIS編) - hnwの日記

    (2009/02/15 17:20)「個人的な感想」を追記しました。また、下記はPHP5.2.1以降の挙動です。PHP5.2.0以前のmb_check_encodingは更にカオスなので、あまり使い物にならないと思います。 (2009/02/16 12:30)追記2:バグっぽいと思った件は当にバグで、修正がhttp://news.php.net/php.cvs/56276の通り取り込まれました。PHP5.2.9から修正される予定です。 (2009/02/22 16:20)追記3:他のエンコーディングについても調査しました。「(その2 EUC-JP編)」と「(その3 UTF-8編)」も合わせてご覧下さい。 PHPのmb_check_encoding関数が一体何のチェックをしているのか、エンコーディングごとに一通り調べてみます。 まずはSJISとSJIS-win(CP932)について調べてみ

    mb_check_encodingは何をチェックするのか(その1 SJIS編) - hnwの日記
    ryster
    ryster 2009/02/17
  • 1