如何使用PHP从Internet保存文件?

时间:2011-09-06 05:41:23

标签: php

例如,我有一个链接“http://www.abcd.com/folder/1.flv”,我需要将此文件保存在我的硬盘中。我必须通过PHP来做到这一点,但我对PHP的了解很少。请告诉我,我该怎么做。

4 个答案:

答案 0 :(得分:3)

嗯,对于较小的文件,你可以将file_get_contents与file_put_contents一起使用,但在这种情况下,(因为它是一个flv),你可能希望使用两个文件:

$rd = fopen("http://www.abcd.com/folder/1.flv", 'r');
$wt = fopen("<local path to write to>", "w");
// read a line from the url (8192 is a standard chunk size)
while( FALSE !== ( $ln = fread( $rd, 8192 ) ) )
{
    // write it locally
    fwrite( $wt, $ln );
    // rinse, repeat until file is done
}
fclose( $wt ); // close the local file.
fclose( $rd ); // close the remote stream

答案 1 :(得分:1)

file_put_contents($localURL, file_get_contents($remoteURL));

答案 2 :(得分:0)

如果您正在编写下载脚本,那么使用file_get_contents非常好,但如果您指的是当用户点击它时强制页面上的链接是下载内容而不是嵌入内容,则这是一个非常不同的事情。你的问题并不清楚。

如果是后者,则不必通过PHP执行此操作,您可以在.htaccess文件或apache的.conf文件中设置规则,具体取决于您在你的处置:

<FilesMatch "\.flv">
    Header set Content-Disposition attachment
    Header set Content-Type application/x-unknown
</FilesMatch>

答案 3 :(得分:0)

<?
copy("http://www.abcd.com/folder/1.flv", "1.flv");
?>

请参阅http://php.net/manual/en/function.copy