前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php OSS 文件读取和写入文件,workerman 生成临时文件并输出浏览器下载

php OSS 文件读取和写入文件,workerman 生成临时文件并输出浏览器下载

作者头像
OwenZhang
发布2022-12-07 14:43:33
3.2K0
发布2022-12-07 14:43:33
举报
文章被收录于专栏:Owen's WorldOwen's World

本文正在参加「金石计划 . 瓜分6万现金大奖」

本文环境 PHP8.1,Mysql5.7 不懂的可以评论或联系我邮箱:owen@owenzhang.com 著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。

?背景

本文介绍php OSS文件读取和写入文件, workerman 生成临时文件并输出浏览器下载

php文件操作介绍

  • fstat函数:显示文件的所有信息
  • 文件读取: fread(fp,filesize(file_path));
  • 写入文件:file_put_contents(file_path,con,FILE_APPEND);
  • 文件操作的应用:可以操作ini文件。将服务器的配置写在ini文件中,再对其进行操作。
  • 拷贝文件:copy("e:\2.txt","d:\1.txt")
  • 创建文件夹:mkdir($path,0777,true)

workerman介绍

Workerman是一款纯PHP开发的开源高性能的PHP 应用容器。

Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的服务框架,你可以用它开发tcp代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版本的nginx、php版本的php-fpm等等。Workerman可以说是PHP领域的一次创新,让开发者彻底摆脱了PHP只能做WEB的束缚。

实际上Workerman类似一个PHP版本的nginx,核心也是多进程+Epoll+非阻塞IO。Workerman每个进程能维持上万并发连接。由于本身常驻内存,不依赖Apache、nginx、php-fpm这些容器,拥有超高的性能。同时支持TCP、UDP、UNIXSOCKET,支持长连接,支持Websocket、HTTP、WSS、HTTPS等通讯协议以及各种自定义协议。拥有定时器、异步socket客户端、异步Redis、异步Http、异步消息队列等众多高性能组件。

读取文件

代码语言:javascript
复制
 //读取文件

        header("Content-Type: text/html;charset=utf-8");    //设置字符编码

        $file        = base_path() . "/public/index.m3u8";

        $read        = fopen($file, 'r');

        $contents    = fread($read, filesize($file));

        $string1     = getBeforeString($contents, 'enc.key');

        $string2     = getLaterString($contents, 'enc.key');

        $newContents = $string1 . 'enc.key?token=123' . $string2;

        fclose($read);

写入文件

代码语言:javascript
复制
 //写入文件、

        $file   = base_path() . "/public/test22.m3u8";

        $handle = fopen($file, 'w');              //打开文件

        fwrite($handle, $newContents);             //写入内容

        fclose($handle);                           //关闭文件

        readfile($file);                           //读取并输出文件全部内容

        return redirect(WEB_URL . '/test22.m3u8');//调转页面

读取oss文件,读取文件每行内容

代码语言:javascript
复制
//读取OSS文件

        $file = OSS_URL . $url1;

        //文件内容加入数组

        $fileContent = @file($file);

        $newContent  = '';

        //遍历文件的每一行

        foreach ($fileContent as $value) {

            //文件该行是否存在这个字符,有这替换内容

            if (strpos($value, 'api.qingsong.chaotuapp.com/') !== false) {

                $value = str_replace('app.com/', "q.com/ckey", $value);

            }

            //文件该行是否存在这个字符,有这拼接内容

            if (strpos($value, '.ts') !== false) {

                $value = $ossUrl . $value;

            }

            $newContent .= $value;

        }

临时文件写入,生成临时文件并浏览器下载

wokerman框架

代码语言:javascript
复制
//写入文件

        $fileName = "$token.m3u8";

        // ./59ee8147cf3f42575bc91ff586d54837.m3u8

        $file = "./$fileName";

        //打开文件

        $handle = fopen($file, 'w');

        //写入内容

        fwrite($handle, $newContent);

        //将文件转字符串

        $content = file_get_contents($file);

        //删除临时文件

        unlink($file);



        //输出浏览器

        $response = new Response();

        return $response->withHeader('content-description', 'File Transfer')

            ->withHeader('content-type', 'application/force-download')

            ->withHeader('content-disposition', "attachment; filename={$fileName}")

            ->withHeader('content-transfer-encoding', 'binary')

            ->withHeader('pragma', 'public')

            ->withBody($content);

本文正在参加「金石计划 . 瓜分6万现金大奖」

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • php文件操作介绍
  • workerman介绍
  • 读取文件
  • 写入文件
  • 读取oss文件,读取文件每行内容
  • 临时文件写入,生成临时文件并浏览器下载
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com