从网站网址下载所有图片

时间:2014-04-24 12:57:07

标签: php image

我需要从网址下载所有图片(仅限)。我一直在搜索,但从来没有得到正确答案。
我有一个页面可以接受网站网址一个输入框,然后提交后将从该网站下载所有图像。
我从网上获得此代码,但我不知道如何使用或在哪里放置网址。例如,我想从http://www.microsoft.com/en-ph/default.aspx

下载所有图像
$url = $_REQUEST['webUrl'];
$string = FetchPage($url);

$image_regex_src_url = '/<img[^>]*'.
'src=[\"|\'](.*)[\"|\']/Ui';
$image_regex_src_url = '/<img[^>]*'.
'src=[\"|\'](.*)[\"|\']/Ui';
preg_match_all($image_regex_src_url, $string, $out, PREG_PATTERN_ORDER);
$images_url_array = $out[1];

foreach ($images_url_array as $pica)
{
    echo '<img src="'.$pica.'" >';
    $fileNames[] = $pica;
}
$_SESSION['filesArr'] = $fileNames;

function FetchPage($path)
{
    $file = fopen($path, "r"); 
    if (!$file)
    {
    exit("URL Unknown");
    } 

    $data = '';

    while (!feof($file))
    {
    $data .= fgets($file, 1024);
    }
    return $data;
}

这是我的下载脚本。

$ files = array(&#39; http://c.s-microsoft.com/en-ph/CMSImages/mslogo.png?version=856673f8-e6be-0476-6669-d5bf2300391d&#39;);     $ zip = new ZipArchive();

$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);

foreach($files as $file){

    $download_file = file_get_contents($file);
    $zip->addFromString(basename($file),$download_file);

}

# close zip
$zip->close();

# send the file to the browser as a download
header('Content-disposition: attachment; filename=download.zip');
header('Content-type: application/zip');
readfile($tmp_file);

1 个答案:

答案 0 :(得分:0)

您也可以使用wget ...例如:

wget -r -A=.jpg,.png http://www.microsoft.com/en-ph/default.aspx