php从远程目录中获取所有文件

时间:2012-10-04 20:31:47

标签: php image

我已经搜索过,并且今天早上搜索了3个多小时,尝试了10种不同的设置,以便如何从网址中抓取并显示图像列表,但这些设置都没有正常工作。我要么最终没有信息显示,或500错误。有人可以给我一个例子或者帮助我如何正确地做到这一点。 file_get_contents不是一个可行的选择。

示例目录:http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/

我知道在该目录中的文件: 001.JPG, 002.JPG, 003.JPG

我希望输出是文件的确切网址。

如果需要更多信息,请告诉我,我不是100%确定如何正确解释它。

编辑:

好吧,我想我真正想做的是检查所有图片标签的网址,并显示一个包含该图片的完整网址的列表。

使用这个网址+图片+ php的新东西所以请不要用你的downvote锤子打我太难,没有评论大声笑。

Code I Tried:

<?php
/*
Credits: Bit Repository
URL: http://www.bitrepository.com/
*/

$url = $location;

// Fetch page
$string = FetchPage($url);

// Regex that extracts the images (full tag)
$image_regex_src_url = '/<img[^>]*'.

'src=[\"|\'](.*)[\"|\']/Ui';

preg_match_all($image_regex, $string, $out, PREG_PATTERN_ORDER);

$img_tag_array = $out[0];

echo "<pre>"; print_r($img_tag_array); echo "</pre>";

// Regex for SRC Value
$image_regex_src_url = '/<img[^>]*'.

'src=[\"|\'](.*)[\"|\']/Ui';

preg_match_all($image_regex_src_url, $string, $out, PREG_PATTERN_ORDER);

$images_url_array = $out[1];

echo "<pre>"; print_r($images_url_array); echo "</pre>";

// Fetch Page Function

function FetchPage($path)
{
$file = fopen($path, "r"); 

if (!$file)
{
exit("The was a connection error!");
} 

$data = '';

while (!feof($file))
{
// Extract the data from the file / url

$data .= fgets($file, 1024);
}
return $data;
}
?>

并返回一个空白页

1 个答案:

答案 0 :(得分:2)

松散地基于你已经尝试过的代码(但是却充满了问题)。这会抓取网址$url的完整内容,解析<img> src个属性,然后输出它们。

由于此特定网络托管服务商使用<base href=""/>代码重置网页上所有网址的基本部分,因此我添加了一个$base变量,您应将其设置为基本代码的内容。

此外,看起来这个特定的网络主机有一些非常智能的反链接,所以并非所有图像都可见。

但是!给它一个旋转,让我知道它是否满足您的需要,以及任何问题。

<?php

$url = 'http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/';
$base = 'http://www.webtoonlive.com/';

// Pull in the external HTML contents
$contents = file_get_contents( $url );

// Use Regular Expressions to match all <img src="???" />
preg_match_all( '/<img[^>]*src=[\"|\'](.*)[\"|\']/Ui', $contents, $out, PREG_PATTERN_ORDER);

foreach ( $out[1] as $k=>$v ){ // Step through all SRC's

    // Prepend the URL with the $base URL (if needed)
    if ( strpos( $v, 'http://' ) !== true ) $v = $base . $v;

    // Output a link to the URL
    echo '<a href="' . $v . '">' . $v . '</a><br/>';
}

示例输出:

http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/000.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/001.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/002.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/003.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/004.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/005.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/006.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/007.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/008.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/009.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/010.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/011.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/012.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/013.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/014.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/015.jpg
http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/016.jpg