ユーザ用ツール

サイト用ツール


lang:php:http

PHP:HTTP, file

リクエスト

GET

$data = file_get_contents( "http://host/index.html" ); 

POST

HTTPヘッダを指定してPOST

#!/usr/bin/php 
 
<?php 
$url = "http://host/path"; 
# POST または GET で送信するデータ 
$data = array( 
  'id' => "1", 
  'name' => "hoge", 
); 
 
# HTTPヘッダ 
$headers = array( 
    "User-Agent: PHP ". PHP_VERSION, 
    'Authorization: Basic '.base64_encode('user:pass'), 
); 
 
$opt = array( 
  'http' => array( 
    'method' => 'POST', 
    'content' => http_build_query($data) 
    'header' => implode("\r\n", $headers), 
  ) 
); 
 
$res = file_get_contents( $url, false, stream_context_create( $opt )); 
 
# レスポンスの HTTPヘッダ一覧 
print_r( $http_response_header ); 
# 1番目の HTTPヘッダを取得し、項目名と値を表示 
$h = split( ':', $http_response_header[1] ); 
print $h[0] . "\n"; 
print ltrim($h[1]) . "\n"; 
 
# HTTP body を表示 
print $res; 
?> 

エラー処理

$res が FALSE の場合は、$http_response_header を参照する。

$http_response_header[0]: HTTPステータスが格納される。

$http_response_header[1] 以降は HTTPヘッダが格納される。

(例)

var_dump( $http_response_header); 

結果

 
array(6) { 
  [0]=> 
  string(22) "HTTP/1.1 404 Not Found" 
  [1]=> 
  string(35) "Date: Thu, 28 Jul 2011 10:02:02 GMT" 
  [2]=> 
  string(120) "Server: Apache/2.0.55 (Unix) mod_ssl/2.0.55 OpenSSL/0.9.7c" 
  [3]=> 
  string(19) "Content-Length: 368" 
  [4]=> 
  string(17) "Connection: close" 
  [5]=> 
  string(43) "Content-Type: text/html; charset=iso-8859-1" 
} 
lang/php/http.txt · 最終更新: 2016/01/26 18:16 (外部編集)