这几天给客户写的PHP的火车头发布接口,往往会使用到远程附件功能,昨天在小小文的博客那里看到了一段代码,自己拿来在组合一下,加上了自动判断目录且建立目录的功能,然后添加了完整的注释,以后会经常用到哦!
<?php
function get_file($url, $folder = "./") {
set_time_limit (24 * 60 * 60); // 设置超时时间
$destination_folder = $folder . '/'; // 文件下载保存目录,默认为当前文件目录
if (!is_dir($destination_folder)) { // 判断目录是否存在
mkdirs($destination_folder); // 如果没有就建立目录
}
$newfname = $destination_folder . basename($url); // 取得文件的名称
$file = fopen ($url, "rb"); // 远程下载文件,二进制模式
if ($file) { // 如果下载成功
$newf = fopen ($newfname, "wb"); // 远在文件文件
if ($newf) // 如果文件保存成功
while (!feof($file)) { // 判断附件写入是否完整
fwrite($newf, fread($file, 1024 * 8), 1024 * 8); // 没有写完就继续
}
}
if ($file) {
fclose($file); // 关闭远程文件
}
if ($newf) {
fclose($newf); // 关闭本地文件
}
return true;
}
function mkdirs($path , $mode = "0755") {
if (!is_dir($path)) { // 判断目录是否存在
mkdirs(dirname($path), $mode); // 循环建立目录
mkdir($path, $mode); // 建立目录
}
return true;
}
// 使用示例
echo get_file('http://www.kalvin.cn/index.php');
?>
分享到:
相关推荐
总结起来,`fopen()` 在PHP中是一个非常基础且灵活的文件操作函数,不仅可以用来读取和写入本地文件,还可以用于下载远程文件。然而,在实际项目中,还需要结合其他函数和技巧,以应对不同的需求和挑战。
根据提供的文件标题、描述、标签以及部分内容,我们可以总结出关于 PHP 中 `fopen` 函数的相关知识点。 ### 标题:fopen函数php文件 ### 描述:此部分描述似乎与实际内容不符,因此我们将忽略描述中的内容,直接...
PHP提供了多种方法来读取远程文件,如`file_get_contents()`函数,`fopen()`和`fread()`组合,或者使用cURL库。在这个函数类中,可能采用了其中的一种或多种技术。 1. `file_get_contents()`:这是一个非常简单且...
这将自动下载文件并解压到指定的目录,更新本地文件。 总的来说,PHP通过内置的函数和类库,可以方便地处理远程文件下载和解压任务,为多站点管理和程序更新提供了便利。这个过程需要注意文件权限、错误处理以及...
// 使用file_get_contents下载文件 $fileContent = file_get_contents($remoteUrl); // 写入文件 if ($fileContent === false) { throw new Exception('Failed to download the remote file.'); } file_put_...
fopen() 函数是PHP中用于打开文件或URL的内置函数,它不仅可以打开本地文件系统中的文件,还可以通过HTTP或FTP协议来打开远程服务器上的文件。使用fopen() 访问远程文件具有重要意义,它允许开发者直接在PHP脚本中...
3. **打开远程文件**:使用`fopen()`函数以读取模式打开远程URL,可能需要配合`stream_context_create()`创建一个带有特定选项的流上下文,如设置HTTP头或处理代理。 4. **读取数据**:通过`fpassthru()`或`fgets()...
开发者可能利用了PHP的fopen(), fread(), fpassthru()等函数来读取和发送文件内容,或者使用file_get_contents()函数直接获取远程文件内容。 在【压缩包子文件的文件名称列表】中,我们看到"132685341559229635",...
本文将详细介绍如何使用PHP下载远程文件到本地存储的方法,并通过两个函数实例分析PHP远程文件操作的技巧。 首先,PHP提供了file_get_contents函数,它能够读取远程文件的内容,并将其作为字符串返回。这是一个非常...
这个程序的主要目标是实现通过PHP脚本来从互联网上的指定位置下载文件到用户的本地设备。在进行PHP编程时,了解如何处理远程文件下载是非常重要的技能,尤其是在构建Web应用或服务时。 首先,我们来讨论PHP中的文件...
在PHP编程中,获取远程文件内容是一个常见的任务。...以上就是PHP获取远程文件内容函数的主要知识点,通过这个函数,可以方便地在PHP项目中实现远程数据的下载和处理,希望对学习PHP程序设计的读者有所帮助。
首先,我们要了解PHP中基本的文件下载方式是通过`file_get_contents()`或`fopen()`函数。这两种方法都相对简单,适用于下载小文件。当使用`file_get_contents()`函数时,它会读取远程文件内容并将其保存到本地变量中...
在PHP中,`file_get_contents`函数是一个非常实用的工具,用于从各种源获取数据,包括从URL下载文件。在处理文件下载时,这个函数能够直接读取远程文件内容并将其保存到本地,或者直接输出到浏览器供用户下载。本文...
当`file_get_contents`函数不可用时,可以使用`fopen`函数以URL方式打开文件,但需要确保PHP配置允许将URL当作文件来处理,即`allow_url_fopen`选项需设置为`On`。`fopen`函数需要以`"rb"`模式打开,以保证二进制...
4. **安全配置**:在PHP配置文件中禁用危险的函数,如`allow_url_fopen`应设置为`Off`。 5. **代码审查**:定期进行代码审查,特别是那些处理用户输入的部分,确保没有潜在的安全风险。 通过以上措施,可以有效地...
1. **获取远程文件大小**:在下载文件前,通常需要先知道文件的大小,以便于进度显示或者判断是否可以成功下载。在PHP中,我们可以使用`get_headers()`函数来获取HTTP响应头信息,其中`Content-Length`字段就包含了...
该脚本定义了一个名为`getFile`的函数,用于实现从远程服务器下载文件,并将其保存到本地指定目录的功能。 - **函数签名**: ```php function getFile($url, $save_dir = '', $filename = '', $type = 0) ``` -...
fopen()函数原本用于打开文件,但当指定的文件路径是一个URL时,PHP会尝试以HTTP协议打开这个URL,从而获取远程网页内容。这使得开发者可以利用简单的文件操作函数来处理远程内容。例如,下面的代码展示了如何使用...
`fopen()` 函数是 PHP 中用于打开文件或 URL 的核心函数,它的使用灵活且功能强大。函数的基本语法如下: ```php resource fopen(string $filename, string $mode [, bool $use_include_path [, resource $context]...