タグ

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

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

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

    PHPでHTTPの並行ダウンロードを実現する(Guzzle編) - hnwの日記
    ji_ku
    ji_ku 2015/03/18
  • WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記

    新年あけましておめでとうございます。今年もボチボチやっていきます。 稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お

    WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記
    ji_ku
    ji_ku 2012/01/18
    Bylineから 新年あけましておめでとうございます。今年もボチボチやっていきます。 本稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グート)とは Goutteは必要十分な機能を持ったWebスクレイピングラ
  • 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の日記
    ji_ku
    ji_ku 2011/02/13
  • 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の日記
    ji_ku
    ji_ku 2010/12/05
  • PHPMatsuriに参加してきました - hnwの日記

    10月2日から3日にかけて、PHPMatsuriに参加してきました。1日目の午前中は大部屋でセッション、午後からは部屋を区切ってセッション+ワークショップの2並列、1日目の夜から2日目の昼まで各自ハック、2日目の午後からハックしたものについてのLT大会、というような流れでした。 事前情報をほとんどチェックできておらず、宿つきのハック大会+ごく小規模なセッションというくらいの認識で行ったのですが、とんでもない勘違いでした。セッションだけでも非常に充実していて、裏側のワークショップも非常に楽しそうで、それだけでヘロヘロなのに深夜までハックする人が多数という、ひょっとしたら通常の4日分くらいが詰めこまれた2日間でした。 僕はずっとセッションを聞いていたのですが、Nate Abeleの「Practical PHP 5.3」とJoel Perras&Nate Abeleの「フレームワーク嫌いの人の為

    PHPMatsuriに参加してきました - hnwの日記
    ji_ku
    ji_ku 2010/10/16
  • 1