php OSS 文件读取和写入文件,workerman 生成临时文件并输出浏览器下载
  8XvpmNDGVWxC 2023年11月02日 90 0


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

 背景

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

 php文件操作介绍

  • fstat函数:显示文件的所有信息
  • 文件读取: fread($fp,filesize($file_path));
  • 写入文件:fileputcontents($filepath,$con,FILEAPPEND);
  • 文件操作的应用:可以操作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、异步消息队列等众多高性能组件。

 读取文件

``` //读取文件

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);

```

写入文件

``` //写入文件、

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

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

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

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

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

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

```

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

``` //读取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框架

``` //写入文件

$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);

```


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
8XvpmNDGVWxC