laravel response返回一直有一个空格,有大佬帮忙看看嘛(有偿)

环境

  • laravel:10
  • php8.2

相关代码

        ## 这是一个在线m3u8地址
        $url='https://zzzz-blog.oss-cn-beijing.aliyuncs.com/happyHls/audio/Lesson1NewWords/Lesson1NewWords.m3u8';
        try {
            $response = Http::get($url);
            if ($response->successful()) {
                $content = $response->body();
            } else {
                return apiResponse(code:Response::SKU_M3U8_ERROR->value,data:[],msg:Response::SKU_M3U8_ERROR->message(),type: 'sku_m3u8');
            }
        } catch (\Exception $e) {
            return apiResponse(code:Response::SKU_M3U8_ERROR->value,data:[],msg:Response::SKU_M3U8_ERROR->message(),type: 'sku_m3u8');
        }

        $content = trim($content);


        return response($content)
            ->header('Content-Type', 'application/vnd.apple.mpegurl');

输出

laravel response返回一直有一个空格,有大佬帮忙看看嘛(有偿)

laravel response返回一直有一个空格,有大佬帮忙看看嘛(有偿)

但是html输出却没有

laravel response返回一直有一个空格,有大佬帮忙看看嘛(有偿)

有大佬帮忙看看嘛,有偿

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案
  return response()->stream(
            function () use ($content) {
                // 确保没有之前的输出
                if (ob_get_level()) ob_end_clean();
                // 直接输出干净的内容
                echo $content;
                // 立即刷新
                flush();
            },
            200,
            [
                'Content-Type' => 'application/vnd.apple.mpegurl',
                'Content-Length' => strlen($content), 
                'X-Accel-Buffering' => 'no', 
            ]
        );

这样就没有问题了

3周前 评论
springlee 3周前
讨论数量: 5

检查一下 php 文件是不是有 bom 头,那个不一定是空格

3周前 评论
  return response()->stream(
            function () use ($content) {
                // 确保没有之前的输出
                if (ob_get_level()) ob_end_clean();
                // 直接输出干净的内容
                echo $content;
                // 立即刷新
                flush();
            },
            200,
            [
                'Content-Type' => 'application/vnd.apple.mpegurl',
                'Content-Length' => strlen($content), 
                'X-Accel-Buffering' => 'no', 
            ]
        );

这样就没有问题了

3周前 评论
springlee 3周前

你的某一个文件 通常是配置文件(因为类文件有命名空间会报错) <?php 前多了一个空格

3周前 评论

用编辑器全文搜索一下 空格<?php

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!