我正在尝试编写一个脚本,该脚本将在服务器上创建一个文件,然后使用 header()
将用户重定向到该文件。然后,大约 10 秒后我想删除该文件。我试过这个:
header('Location: '.$url);
flush();
sleep(10);
unlink($url);
但是浏览器只是等待脚本完成然后被重定向,但是那个时候文件已经被删除了。有没有办法告诉浏览器“文件结束”,然后继续计算?或者让 PHP 启动另一个脚本,但不等待该脚本完成?
最佳答案
让 PHP 页面为文件提供服务可能会更好。在这种情况下无需创建临时文件并删除它,只需将要写入的数据发送到临时文件即可。您需要正确设置 header ,以便浏览器可以识别您发送的文件类型。即内容类型:文本/xml;用于 xml 或 image/jpeg 用于 jpg。
此方法还可以处理需要较长时间下载文件的慢速客户端。
关于php - 返回页面后继续运行 php 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/357639/