The basic idea of a Web 2.0-style "mashup" is that you consume data from several services, often from different providers and combine them in interesting ways. This means you often need to do more than one HTTP request to a service or services. In PHP if you use something like file_get_contents() this means all the requests will be synchronous: a new one is fired only after the previous has completed. If you need to make three HTTP requests and each call takes a second, your app is delayed at least three se...
この場合,ブラウザは「日本語ファイル名.txt」というファイルを見ているつもりになりますが,サーバ側では fakefile.php を実行し,/日本語ファイル名.txt はその実行の際に環境変数 PATH_INFO として渡されるだけです。 また,ファイル名はHTTPヘッダによっても与えることができます: Content-Type: text/plain; charset=UTF-8 Content-Disposition: attachment; filename="日本語ファイル名.txt" ブラウザはこ...
一般にApacheに代表されるHTTP 1.1サーバーは、Webブラウザが通常のHTMLファイルにアクセスした時に、Last-Modified(更新時刻)ヘッダとETag(更新時刻などから生成されたハッシュ値)ヘッダを返します。次回以降のアクセスでは、この両ヘッダにセットされた更新時刻やハッシュ値が異なる場合だけコンテンツのダウンロードを行い、そうでない場合にはローカルキャッシュを参照すること...
『 context=stream_context_create(array('http'=>array('method'=>'GET','header'=>'UA',)));$data=file_get_contents($url,false,$context); 』
最近ハヤリの色々なAPIを使った(mashupした)サイトを遊びで作る際に、 いつもAPI呼び出しのHTTP接続の部分を適当に汎用性なく都度書いちゃう非効率なこと ばかりやってたんですが、今回多少気合いを入れて汎用的なオリジナルクラスを書いてみました。 方針は 1. 接続コアな部分ははcurlに任せる 2. 複数のリクエストもまとめて処理できるようにする 3. データの取得はAPIの応答がい...
Movable Type 等で PHP 化や PHP モジュール化によりファイルの拡張子を .php で運用している場合の、サーバ負荷・ネットワークトラフィックを削減する方法をご紹介します。 1.問題点 HTML ファイルの拡張子を .php にしている場合、HTTP/1.1 で規定されている「条件付き GET」が行われません。ブラウザはこのようなサイトに対し無条件に GET を行ってしまうため、サーバ負荷やネットワ...
PHPのHTTP wrapperは、渡された$data変数の長さに基づき、Content-Lengthを自動的に書き込みます。$optional_headersにContent-Typeを指定できない場合は、application/x-www-form-urlencodedにContent-Typeを自動的に設定します。 リダイレクトのロジック、HTTPを使った認証処理、ユーザーエージェントの設定などにコーディングを必要としないため、この方法は手軽に利用することができます。 http_build_query()...