Goutteをインストールします。
$ composer require fabpot/goutte:2.*以下、ファイルをダウンロードするサンプルです。
<?php require_once './vendor/autoload.php'; // Goutte\Client のインスタンスを生成する $client = new Goutte\Client; // ダウンロードしたいファイルがあるURLにアクセスする $client->request('GET', 'http://example.com/download.php'); // レスポンスのオブジェクトを取得する /** @var Symfony\Component\BrowserKit\Response $response */ $response = $client->getResponse(); // コンテンツのオブジェクトを取得する /** @var GuzzleHttp\Stream\Stream $content */ $content = $response->getContent(); // seek(0) して getContents() するとファイル内容を取得できる $content->seek(0); echo $content->getContents();これで、ダウンロードしたファイルの内容を取得出来ました。ポイントは seek(0) です。これをしないと、どうにも取得できませんでした。
尚、ダウンロードさせる側に、以下のPHPファイルを置いて確認しました。
<?php // download.txt は別途用意する $file = 'download.txt'; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.$file); header('Content-Length: ' . filesize($file)); readfile($file);
No comments:
Post a Comment