PHP生成响应后修改HTTP响应内容

时间:2015-05-06 16:26:54

标签: php linux apache ubuntu

我对responseText的修改xmlhttprequest有疑问。

index.htmlxmlhttprequest(req)发送b.php,(index.htmlb.php两个位置都位于“测试”文件夹中)

b.php回声二进制(video/mp4)数据。

$url="/stream/stream.m4s";
$data=file_get_contents($url);

header('Content-type: video/mp4');
header('Content-Length: '.strlen($data));
header('Content-Transfer-Encoding: binary');

echo $data;

我在req.responseText打印index.html, 我得到responseText="/Tests/b.php?url=/stream/stream.m4s"

responseText完成生成响应后,如何修改b.php内容。 (不要修改index.htmlb.php

示例:响应写为"/abc/Tests/b.php?url=/stream/stream.m4s"

请给我一些建议,谢谢。

我简化了我的问题:如何在php完成生成响应后附加/修改响应内容。 b.php回显诸如“abc”之类的字符串。在发送到浏览器之前,通过apache(或其他)将响应字符串附加/修改为“123abc”。浏览器(req.responseText)将获得“123abc”stirg。怎么做?谢谢!

1 个答案:

答案 0 :(得分:0)

会建议另一种方法:

<?php

// open the file in a binary mode
$url="./stream/stream.m4s";
$fp = fopen($url, 'rb');

// send the right headers
header("Content-Type: video/mp4");
header("Content-Length: " . filesize($url));

// dump the file and stop the script
fpassthru($fp);
exit;

?>

此外,当您进行AJAX调用时,您需要在操作之前等待successdone,以便您知道您已将内容传回并在DOM中呈现。由于视频文件较大,因此在将数据传递回AJAX请求之前,您可能会开始处理其他代码。

需要更多帮助?发布更多代码。