2012-10-04 61 views
-1

我已经搜索了,并且今天早上搜索了3个多小时,并尝试了超过10个不同的设置,以便如何抓取并显示来自url的图像列表,而且它们都无法正常工作。我要么最终没有信息显示,或500错误。有人能指点我一个例子,或者在这里帮助我如何正确地做到这一点。 file_get_contents不是一个可行的选项。php从远程目录中获取所有文件

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

文件,我知道,在这个目录: 001.JPG, 002.JPG, 003.JPG

我想输出是准确的网址文件。

让我知道是否需要更多信息,我不是100%确定如何解释它正确的大声笑。

编辑:

好了,所以我想我真正想要做的是检查URL为所有的图像标记,并与完整的URL到图像显示一个列表。

新来使用这个URL +图像+ PHP的东西,所以请不要打我太难与你downvote锤没有评论哈哈。

代码我想:

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

Downvote没有评论...谢谢! – rackemup420

+0

再次阅读您的问题8-10次后,我现在已经彻底迷惑了自己,不确定我的答案是否有帮助。为什么不是file_get_contents()一个选项?该网址不是一个目录..这是一个网站。当你说“文件我知道它在那个目录中”时,你是什么意思?你只是想获得一个页面上使用的所有图像?哪些图片?只是''标签或在CSS中使用的标签呢? –

+0

对不起,我告诉过你,我不知道如何正确解释它大声笑。我想要做的就是抓住所有标签,并将它们作为列表显示给我,作为该图像的完整网址。而我在另一篇文章中读到file_get_contents并不总是得到所有的文件...我是新来的这个东西。 – rackemup420

回答

2

你已经尝试过的代码基于松散的(但问题是千疮百孔)。这会抓取URL $url的全部内容,解析出属性,然后输出它们。

因为这个特定的网络主机使用<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 
+0

当$ url不=时,Works无瑕疵=另一个变量。但是当我将它切换到'$ url = $ location'时,它会显示一个没有任何内容的空白页面。 '$ location = mysql_real_escape_string($ _ REQUEST ['q']);'是它的设置。 – rackemup420

+0

如果你var_dump($ _REQUEST ['q']);'?看看你的'$ _REQUEST ['q']'变量的内容是什么。除非你把URL放回到数据库中,否则你可能不需要'mysql_real_escape_string()' –

+0

将它改回到'$ url = $ location',并且它第二次工作......也许我拼错了一些东西第一次运行大声笑...谢谢你的时间很棒。现在我可以更快地获取漫画,而不必在视图源输出中搜索链接1。 – rackemup420

相关问题