file_get_contentsで通信する場合
GETの場合
$options=[
'http'=>[
'method' => 'GET',
'timeout'=>10, //タイムアウト時間(秒)
'ignore_errors' => true, //ステータスコードが4xxや5xxでもコンテンツを取得
]
];
$context=stream_context_create($options);
//通信したいURLを記述する
$url='https://mam-mam.net/';
$res=file_get_contents($url,false,$context);
//レスポンスヘッダーの1行目からhttpレスポンスコードを取得
preg_match('/^HTTP\/1\.[0|1|x] ([0-9]+) (.*)$/',$http_response_header[0],$matches);
$http_response_code=$matches[1]; //httpレスポンスコード
$http_response_text=$matches[2]; //httpレスポンステキスト
if($res){echo $res;}else{echo "error\n";}
POSTの場合
//POSTするデータを設定
$data=['a'=>'あいうえお','b'=>'1'];
//POST先に合わせて文字コードを変換 (必要な場合)
mb_convert_variables('UTF-8', 'UTF-8', $data);
//クエリ文字列の生成
$data = http_build_query($data, "", "&");
$options=[
'http'=>[
'method' => 'POST',
'timeout'=>10, //タイムアウト時間(秒)
'header' => 'Content-Type: application/x-www-form-urlencoded'."\r\n".
'Content-Length: '.strlen($data)."\r\n".
'Cache-Control: no-cache',
'content' => $data,
'ignore_errors' => true, //ステータスコードが4xxや5xxでもコンテンツを取得
]
];
$context=stream_context_create($options);
//通信したいURLを記述する
$url='https://mam-mam.net/';
$res=file_get_contents($url,false,$context);
//レスポンスヘッダーの1行目からhttpレスポンスコードを取得
preg_match('/^HTTP\/1\.[0|1|x] ([0-9]+) (.*)$/',$http_response_header[0],$matches);
$http_response_code=$matches[1]; //httpレスポンスコード
$http_response_text=$matches[2]; //httpレスポンステキスト
if($res){echo $res;}else{echo "error\n";}
GETでBASIC認証(基本認証)の場合
$options=[
'http'=>[
'method' => 'GET',
'timeout'=>10, //タイムアウト時間(秒)
'header'=>'Authorization: Basic '.base64_encode('ユーザー名'.':'.'パスワード')."\r\n"
'ignore_errors' => true, //ステータスコードが4xxや5xxでもコンテンツを取得
]
];
$context=stream_context_create($options);
//通信したいURLを記述する
$url='https://mam-mam.net/';
$res=file_get_contents($url,false,$context);
//レスポンスヘッダーの1行目からhttpレスポンスコードを取得
preg_match('/^HTTP\/1\.[0|1|x] ([0-9]+) (.*)$/',$http_response_header[0],$matches);
$http_response_code=$matches[1]; //httpレスポンスコード
$http_response_text=$matches[2]; //httpレスポンステキスト
if($res){echo $res;}else{echo "error\n";}
GETで無効な証明書のサイトにHTTPS通信する場合
$options=[
'http'=>[
'method' => 'GET',
'timeout'=>10, //タイムアウト時間(秒)
'ignore_errors' => true, //ステータスコードが4xxや5xxでもコンテンツを取得
],
'ssl'=>[
'verify_peer'=>false,
'verify_peer_name'=>false,
]
];
$context=stream_context_create($options);
//通信したいURLを記述する
$url='https://mam-mam.net/';
$res=file_get_contents($url,false,$context);
//レスポンスヘッダーの1行目からhttpレスポンスコードを取得
preg_match('/^HTTP\/1\.[0|1|x] ([0-9]+) (.*)$/',$http_response_header[0],$matches);
$http_response_code=$matches[1]; //httpレスポンスコード
$http_response_text=$matches[2]; //httpレスポンステキスト
if($res){echo $res;}else{echo "error\n";}
GETで無効な証明書のサイトにHTTPS通信するがサーバ証明書ファイルがある場合
$options=[
'http'=>[
'method' => 'GET',
'timeout'=>10, //タイムアウト時間(秒)
'ignore_errors' => true, //ステータスコードが4xxや5xxでもコンテンツを取得
],
'ssl'=>[
'verify_peer'=>true,
'cafile'=>'/home/hoge.csr', //サーバ証明書
]
];
$context=stream_context_create($options);
//通信したいURLを記述する
$url='https://mam-mam.net/';
$res=file_get_contents($url,false,$context);
//レスポンスヘッダーの1行目からhttpレスポンスコードを取得
preg_match('/^HTTP\/1\.[0|1|x] ([0-9]+) (.*)$/',$http_response_header[0],$matches);
$http_response_code=$matches[1]; //httpレスポンスコード
$http_response_text=$matches[2]; //httpレスポンステキスト
if($res){echo $res;}else{echo "error\n";}
GETでクライアント証明書が必要な場合
クライアント証明書はpem形式に変換したものを使用します
$options=[
'http'=>[
'method' => 'GET',
'timeout'=>10, //タイムアウト時間(秒)
'ignore_errors' => true, //ステータスコードが4xxや5xxでもコンテンツを取得
],
'ssl'=>[
'verify_peer'=>false,
'verify_peer_name'=>false,
'local_cert', '/home/hoge.pem',//クライアント証明書
'passphrase'=>'パスフレーズ',
]
];
$context=stream_context_create($options);
$url='https://mam-mam.net/'; //取得したいURLを記述する
$res=file_get_contents($url,false,$context);
//レスポンスヘッダーの1行目からhttpレスポンスコードを取得
preg_match('/^HTTP\/1\.[0|1|x] ([0-9]+) (.*)$/',$http_response_header[0],$matches);
$http_response_code=$matches[1]; //httpレスポンスコード
$http_response_text=$matches[2]; //httpレスポンステキスト
if($res){echo $res;}else{echo "error\n";}