(一)PHP学习笔记系列之(文件操作) //待完善


1、文件下载和上传技术


(1) file_get_contents()函数:打开本地/远程文件内容

效果图

代码://远程得到url内容,不下载
$timeout = 20;
$opts = array(
'http' => array(
'method' => "GET",
'header' => 'Content-Type:text/html; charset = utf-8',
'timeout' => $timeout, //设置超时
)
);
$context = stream_context_create($opts);
$url = "http://curl.dangdang.com/lx.txt";
// $url = "http://www.baidu.com";
$file_content = @file_get_contents($url, false, $context,2,10);
echo $file_content;

分析:读取远程服务器上文件内容,2/10表示从第3个字节开始读取10个字节内容。服务器需要配置nginx指定域名请求。

(2) header()函数:打开本地/远程文件

header()打开远程服务器上得lx.txt文件

代码:

        $filename = "http://curl.dangdang.com/lx.txt";
        header("Content-type: application/octet-stream");
//      header("Content-Type: application/text");
        header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
        header("Content-Length: ". filesize($filename));
        readfile($filename);

分析:header()函数应该是模拟发送一个HTTP请求。

转载:鸟哥的一篇博文讲述了文件名中文时怎么做,和直接让webserver按文件发送给用户,让PHP提供更快文件下载

(3) curl_()函数:远程下载文件*

//从远程服务器上下载文件,比如lx.txt,配置服务器nginx。
下载远程服务器上lx.txt文件

        set_time_limit(0);

        $url = "http://curl.dangdang.com/lxv2.php";
        $pi = pathinfo($url);  
        $ext = $pi['extension'];  
        $name = $pi['filename'];

  //    var_dump($ext,$name,$pi['dirname'],$pi['basename']);

        $ch = curl_init();  

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
        curl_setopt($ch, CURLOPT_AUTOREFERER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $opt = curl_exec($ch);
        curl_close($ch);

        $saveFile = $name.'.'.$ext;
        if (preg_match("/[^0-9a-z._-]/i", $saveFile)) {
            $saveFile = md5(microtime(true)).'.'.$ext;
        }

        $handle = fopen($saveFile, 'wb');
        fwrite($handle, $opt);
        fclose($handle);

分析:初始化一个session,再curl下载文件,在本地新建一个同名文件并写入内容,即下载过程。

(4) 文件上传技术
上传技术需要注意php.ini配置文件的上传配置参数:
file_uploads = On//上传开关
upload_max_filesize = 2M//上传文件尺寸最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值