0

今天早上我已经搜索了 3 个多小时,并尝试了 10 多种不同的设置来获取和显示来自 url 的图像列表,但它们都不能正常工作。我要么最终没有显示信息,要么出现 500 错误。有人可以指点我一个例子或在这里帮助我如何正确地做到这一点。file_get_contents 不是一个可行的选择。

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

我知道该目录中的文件:001.jpg、002.jpg、003.jpg

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

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

编辑:

好的,所以我想我实际上想要做的是检查所有图像标签的 url 并显示一个包含该图像的完整 url 的列表。

刚开始使用这个 url+images+php 的东西,所以请不要用没有评论的投票锤对我造成太大的打击,哈哈。

我试过的代码:

<?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;
}
?>

它返回了一个空白页

4

1 回答 1

3

松散地基于您已经尝试过的代码(但充满了问题)。这会抓取 URL 的全部内容$url,解析出<img> src属性,然后输出它们。

因为这个特定的网络主机使用<base href=""/>标记来重置页面上所有 URL 的基本部分,所以我添加了一个$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
于 2012-10-04T21:21:48.110 回答