現在の位置: ホーム> 最新記事一覧> PHP ファイルのダウンロードに関する完全ガイド: readfile、ヘッダー、および cURL の例

PHP ファイルのダウンロードに関する完全ガイド: readfile、ヘッダー、および cURL の例

M66 2025-10-28

PHP でファイルをダウンロードするいくつかの方法

PHP でファイルをダウンロードするにはさまざまな方法があり、さまざまなニーズに応じて最適な方法を選択できます。一般的に使用される方法には、readfile() 関数を使用して直接ダウンロードする方法、header() 関数を使用して強制的にダウンロードする方法、および cURL ライブラリを使用してリモート ファイルをダウンロードする方法があります。

ファイルを直接ダウンロードするには readfile() を使用します

ダウンロードする最も簡単な方法は、PHP の組み込み readfile() 関数を使用することです。

<?php
$file = 'file.txt';

if (file_exists($file)) {
    readfile($file);
} else {
    echo 'File not found.';
}
?>

header() を使用してブラウザにダウンロードを強制します

ファイルを直接開くのではなくブラウザにダウンロードさせたい場合は、header() を使用して HTTP ヘッダーを設定できます。

<?php
$file = 'file.txt';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Length: ' . filesize($file));
    readfile($file);
} else {
    echo 'File not found.';
}
?>

cURL を使用してリモート ファイルをダウンロードする

リモート ファイルをダウンロードする必要がある場合、またはより複雑な操作を実行する必要がある場合は、cURL ライブラリを使用できます。

<?php
$url = 'https://example.com/file.txt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);

file_put_contents('file.txt', $data);
?>

上記は、PHP でファイルのダウンロードを実装する一般的な方法をいくつか示しています。ローカル ファイルのダウンロードでも、リモート ファイルの取得でも、これらの例を参照して簡単に実装できます。