Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-使用strip_标记创建文件下载_Php - Fatal编程技术网

PHP-使用strip_标记创建文件下载

PHP-使用strip_标记创建文件下载,php,Php,这是我正在使用的代码: $fp = fopen($file, 'rb'); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=$fakeFileName"); header("Content-Length: " . filesize($file)); fpassthru($fp) 服务器上的实际文件也包含HTML内容,因此希望使用strip\u

这是我正在使用的代码:

$fp = fopen($file, 'rb');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$fakeFileName");
header("Content-Length: " . filesize($file));
fpassthru($fp)
服务器上的实际文件也包含HTML内容,因此希望使用
strip\u tags()
,但在这里似乎不起作用。尝试使用
file\u get\u contents
+
strip\u tags()
,但下载失败

我知道这与streams有关。我不确定哪一个函数能帮我摆脱文件中的html标记,并提供纯文本下载

这应该有效:

$filedata = file_get_contents($file) ; // Get file content as string 
$filedata = strip_tags($filedata) ; // strip tag in the string 

header("Content-Type: application/octet-stream") ;
header("Content-Disposition: attachment; filename=$fakeFileName") ;
header("Content-Length: " . strlen($filedata)) ; // final string size
echo $filedata ; // outputs content
exit(0) ; // stop script

您可能想阅读strip_标签的实际功能,但在您拥有要剥离标签的实际内容之前,您不能使用它。如果您只使用
文件获取内容($fakeFileName)
,那么会发生什么情况?是的,这应该可以工作。OP注意:这增加了不流式传输文件的缺点,因此可以达到内存限制,但我不确定使用PHP是否真的可以避免。更好的解决方案是预先对文件执行strip_标记,假设文件内容可以更改。