📜  php 下载 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:21.535000             🧑  作者: Mango

PHP 下载

在 PHP 中,我们可以使用 file_get_contents() 函数将远程或本地文件的内容读取到字符串中。我们还可以使用 file_put_contents() 函数将字符串写入本地文件。

下载远程文件

我们可以使用 file_get_contents() 函数并指定 URL 来下载远程文件。

$fileUrl = 'http://example.com/file.zip';
$fileContent = file_get_contents($fileUrl);
file_put_contents('/path/to/local/file.zip', $fileContent);

在上面的代码中,我们将 $fileUrl 设置为文件的远程 URL 并调用 file_get_contents() 函数将文件内容读取为字符串。接着我们将字符串使用 file_put_contents() 函数写入到本地文件路径 /path/to/local/file.zip 中。

下载大文件

如果需要下载大文件,我们可以使用 stream_context_create() 函数创建一个流上下文,并将上下文添加到 file_get_contents() 函数中。

$fileUrl = 'http://example.com/largefile.zip';
$localFile = '/path/to/local/largefile.zip';

$options = [
    'http' => [
        'method' => 'GET',
        'header' => 'Accept-Encoding: gzip, deflate\r\n',
        'timeout' => 60,
    ]
];
$context = stream_context_create($options);

$fileContent = file_get_contents($fileUrl, false, $context);

在上面的代码中,我们首先创建了一个 $options 数组,配置了 HTTP 请求的一些选项,例如请求方法、请求头和超时时间。接着我们使用 stream_context_create() 函数创建一个流上下文,将 $options 数组作为参数传递给它。最后我们将流上下文作为第三个参数传递给 file_get_contents() 函数。

下载本地文件

我们也可以使用 file_get_contents() 函数下载本地文件,只需要将文件路径传递给它即可。

$localFile = '/path/to/local/file.zip';
$fileContent = file_get_contents($localFile);
结论

可以在 PHP 中使用 file_get_contents()file_put_contents() 函数来下载远程或本地文件。如果需要下载大文件,可以使用流上下文来实现。