PHP readfile() of external URL

user583311 picture user583311 · Jan 20, 2011 · Viewed 37.7k times · Source

Can I use external URLs in readfile()?

    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');

Answer

Jacob Relkin picture Jacob Relkin · Jan 20, 2011

The PHP manual on readfile states:

A URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename. See the Supported Protocols and Wrappers for links to information about what abilities the various wrappers have, notes on their usage, and information on any predefined variables they may provide.

As an alternative you can also use file_get_contents:

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