使用PHP在zip中打开PDF文件而不进行解压缩

使用PHP在zip中打开PDF文件而不进行解压缩,php,pdf,zip,Php,Pdf,Zip,我想知道是否可以在不提取.zip文件的情况下打开位于.zip文件中的PDF文件?如果PDF不在.zip文件中,我可以打开它,如下所示: <? header("Content-type: application/pdf"); header("Content-Disposition: inline; filename=C:\orders\data.pdf"); @readfile("filename=C:\orders\data.pdf"); ?> 我试着这样做,但这不起作用: &

我想知道是否可以在不提取.zip文件的情况下打开位于.zip文件中的PDF文件?如果PDF不在.zip文件中,我可以打开它,如下所示:

<?
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=C:\orders\data.pdf");
@readfile("filename=C:\orders\data.pdf");
?>

我试着这样做,但这不起作用:

<?
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=C:\orders\datacollection.zip\data.pdf");
@readfile("filename=C:\orders\datacollection.zip\data.pdf");
?>

所以我的问题是,使用PHP是否可以打开位于.zip文件中的PDF文件而不进行解压缩

我也试过了,但没用:

<?php
$zip = new ZipArchive;
$zip->open('weborder.zip');
$contents = $z->getFromName('weborder.pdf');
?>

使用包装器:

您可以将其与
fopen/fread
一起使用,也可以仅使用
文件获取内容

$pdf = file_get_contents('zip://datacollection.zip#data.pdf');
echo $pdf;
(代表OP发布):

感谢JoeCoder,这里有一个解决方案:

header("Content-type: application/pdf");
$pdf = file_get_contents('zip://C:/xampp/htdocs/weborder.zip#weborder.pdf');
echo $pdf;
?>

1.不要使用
@
。曾经2.为什么不呢?这似乎有效?是的,错误抑制很棒!直到您的代码停止工作并且您不知道为什么,因为您已经抑制了所有可能有助于您诊断问题的错误消息。使用
error\u reporting
控制错误的可见性,不要这样抑制它们。(我已经做了一些编辑来整理——这里有很多演示文稿模因,但基本上我已经删除了称呼/签名,并将答案编辑移到了正确的答案,因此保留了问答分离。欢迎您以后自己做这件事,这甚至可能会为您赢得声誉点数)。我尝试了这个,但得到了以下结果:您仍然有
内容类型
标题集?看起来像PDF数据,但浏览器不知道它是PDF。