外部URL的PHP​​ readfile()

时间:2011-01-20 20:46:51

标签: php readfile

我可以在readfile()中使用外部URL吗?

    header('Content-type: application/pdf');
    header('Content-Transfer-Encoding: binary');
    header('Content-Disposition: inline; filename="'.$file.'" ');
    //header('Content-Length: ' . filesize("http:...z/pub/".$file.'.pdf'));
    @readfile("http://...z/pub/".$file.'.pdf');

2 个答案:

答案 0 :(得分:19)

readfile上的PHP手册指出:

  

如果已启用fopen wrappers,则可以将URL用作具有此功能的文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。请参阅Supported Protocols and Wrappers以获取有关各种包装器具有哪些功能的信息的链接,使用说明以及它们可能提供的任何预定义变量的信息。

作为替代方案,您还可以使用file_get_contents

echo file_get_contents("http://...z/pub/".$file.'.pdf');

答案 1 :(得分:2)

是的,根据readfile页面:

  

URL可以用作文件名   这个函数如果是fopen_wrappers   已启用。看到   fopen()了解更多有关如何使用的细节   指定文件名。见   Supported Protocols and Wrappers   有关什么的信息的链接   各种包装的能力,   关于它们的用法和信息的说明   在他们可能的任何预定义变量   提供。