PHP实现的一个保存远程文件到本地的函数分享_ruby专题

最近遇到了PHP远程图片本地话的问题,查了查手册发现file_get_contents()和file_put_contents()可以解决这个问题。思路很简单,将远程文件读入字符串中,然后按照规则写入指定目录,经测试此法可采集图片、文本、音频文件等,只要你可以想办法得到它们的地址。

先上代码:

复制代码 代码如下:

/**
 * 保存文件到本地
 * @param 文件路径 $url
 * @param 保存本地路径 $savePath
 * @return string
 */
function downloadFile($url,$savePath='')
{
    $fileName = getUrlFileExt($url);
        $fileName = rand(0,1000).$fileName;
    $file = file_get_contents($url);
    file_put_contents($savePath.'/'.$fileName,$file);
        return $fileName;
}
 
/**
 * 获取文件扩展名
 * @param 网页URL $url
 * @return string
 */
function getUrlFileExt($url)
{
    $ary = parse_url($url);
    $file = basename($ary['path']);
    $ext = explode('.',$file);
    return $ext[1];
}

示例:

复制代码 代码如下:

downloadFile("yun_qi_img/mei.png","/upload/2012/01/")

file_get_contents(path) 函数和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。path是必须的参数,规定要读取的文件。

file_put_contents(file,data) 函数是把一个字符串写入文件中。与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。file是必需参数,规定要写入数据的文件。如果文件不存在,则创建一个新文件。data是要写入的数据,可以是字符串、数组或数据流。

parse_url()则可以抓取分析url的信息,我们这里用它来获取文件的名称

官方给的示例:

复制代码 代码如下:

$ php -r 'print_r(parse_url("http://invalid_host..name/"));'
Array
(
    [scheme] => http
    [host] => invalid_host..name
    [path] => /
)

时间: 2024-08-23 04:58:32

PHP实现的一个保存远程文件到本地的函数分享_ruby专题的相关文章

如何让Word 2013同时保存远程文件和本地副本

在使用Word2013编辑存储在网络或可移动存储设备中的Word文档时,如果网络或可移动存储设备发生故障,则可能无法将当前Word文档正常保存到原始位置,从而造成数据丢失.为防止出现此类问题,用户可以在Word2013中启用为远程文件创建本地副本的功能,在保存本地副本的同时将Word文档保存到远程文件的原始位置,具体操作步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按钮,如图2013072549所示. 图2013072549 单击&

Word2013中如何同时保存远程文件和本地副本

  第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按钮. 第2步,打开"Word选项"对话框,切换到"高级"选项卡.在"保存"区域选中"将远程存储文件复制到您的计算机上,并在保存时更新远程文件"复选框,并单击"确定"按钮. 分类: word教程

ASP保存远程文件到本地

 <% Function SaveRemoteFile(LocalFileName,RemoteFileUrl)     SaveRemoteFile=True dim Ads,Retrieval,GetRemoteData Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP") With Retrieval    .Open "Get", RemoteFileUrl, False, "&qu

asp下实现替换远程文件为本地文件并保存远程文件的代码_应用技巧

1.将下面的文本文件下载,并将.TXT改为remote.asp,里面有具体设置方法 复制代码 代码如下: <%  '添加资源时是否保存远程图片 Const sSaveFileSelect=True '远程图片保存目录,结尾请不要加"/" Const sSaveFilePath="/images/News" '远程图片保存类型 Const sFileExt="jpg|gif|bmp|png" '////////////////////////

ASP保存远程图片到本地,并生成缩略图

ASP通过XMLHTTP获取远程图片流数据,并保存到本地,把第一张采集到的图片生成缩略图. 具体代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderPath ------文件夹地址 '================================================== Function CheckDir2(byval Folder

ASP保存远程图片到本地 同时取得第一张图片

这是本人在SNA新闻采集系统 For 动力3.62 里使用的几个函数可以普遍的使用在采集 或者 在线添加文章中以下是函数程序代码<%'=================================================='函数名:DefiniteUrl'作 用:将相对地址转换为绝对地址'参 数:PrimitiveUrl ------要转换的相对地址'参 数:ConsultUrl ------当前网页地址'=======================================

ASP分析内容自动保存远程图片到本地并取得第一张图片创建缩略图

俺从SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码 <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderPath ------文件夹地址 '================================================== Function CheckDir2(byva

PHP实例代码:实现远程下载文件到本地的函数

  经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经够用了,如果服务器支持CURL函数,程序则会优先选择CURL,因为测试结果表明CURL的响应时间及资源占用率比file_get_contents小得多;如果大家有好的建议及改进方案,欢迎留言给我哦! 代码: echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif"); function httpcopy($url,

ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码_应用技巧

采集中 或者 在线添加文章中 都可以用到此功能 俺自己在baidu上搜索的保存远程图片到本地的代码 感觉比较难用点 而且没有现成的比较全的代码 俺也看不懂 俺从 SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码  复制代码 代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderP