システム開発:PHP関数(file_get_contents/file_put_contents)簡単ファイル処理
PHP5からいくつかの関数が新しく提供されていますが、
その中でも抜群に便利なのが、ファイル処理系の(file_get_contents/file_put_contents)だと思います。
今まではfopenでファイルをオープンして、ファイルポインタリソースをreadしたり、writeしたりと何かと手順が多かったのですが
・stream_get_contents — 残りのストリームを文字列に読み込む
・file_put_contents — 文字列をファイルに書き込む
を使えば1行で全ての処理が完結します。
また、
stream_context_create を使用すれば、GET,POSTリクエストの処理も難なくこなしてくれます。
今まで使っていた外部ライブラリのcurl、PEAR(HTTP_Client)を、使わなくてすむので、サーバ環境をあれこれ考えなくてすむというメリットもあります。
file_get_contents にて HTTP GETを送信する方法
1 |
<?php $context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'header' => 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', ))); $url = "http://www.my-standard.co.jp"; $data = file_get_contents($url, false, $context);?> |
file_get_contents にて HTTP POSTを送信する方法
1 |
<?php $data = array( "param1" => "data1", "param2" => "data2" ); $data = http_build_query($data, "", "&"); $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ". strlen($data) ); $context = stream_context_create(array( "http" => array( "method" => "POST", "header" => implode("rn", $header), "content" => $data ))); $url = "http://www.my-standard.co.jp"; echo file_get_contents($url, false, $context);?> |