如何使用远程URL打开ZIP?

时间:2015-11-14 17:24:13

标签: php wordpress

我想通过传递远程网址(http://www.example.com/file.ziphttp://localhost/wordpress/wp-content/uploads/file.zip)而不是文件位置(C:\wamp\www\wordpress\wp-content\uploads\file.zip)来打开ZIP文件

此构造函数适用于文件位置,但不适用于文件的远程url。如何使用此方案的远程URL打开文件?

public function __construct($file = false)
{
    if ($file && is_file($file)) {
    //$file="C:\wamp\www\wordpress\wp-content\uploads\file.zip" here
        $this->open($file);
        $this->fileName = basename($this->filePath = $file);
    } else {
        throw new \Exception($file . " not a regular file");
    }

}

3 个答案:

答案 0 :(得分:1)

最安全的方法是

  1. 下载文件
    如果启用allow_url_fopen,这非常简单:file_get_contents()接受远程网址。如果未启用,请使用cURL或Wordpress HTTP帮助程序进行下载。
  2. 在当地保存 使用file_put_contents()也非常简单。 /tmp文件夹可能是您可以写的。在Windows上,我不知道tmp文件夹的位置。
  3. 像其他任何一样打开它 就像使用ZipArchive::open()或您无名的班级
  4. 的本地ZIP存档一样

答案 1 :(得分:0)

只需使用php fopen功能

http://php.net/manual/en/function.fopen.php

$handle = fopen("http://www.example.com/", "r");

答案 2 :(得分:0)

我用它来获取网页的内容但不是拉链文件 - 不确定这是否有用但是对我来说效果很好。 $contents肯定适用于文字。

    // For PHP 5 and up
    $handle = fopen("https://www.thesiteyouwant.com/the_target_file.ext", "r");
    $contents = stream_get_contents($handle);

http://php.net/manual/en/function.stream-get-contents.php