Search code examples
phpimage

php get all files from a remote directory


I have searched, and searched for 3+ hours this morning and tried over 10 different setups for how to grab and display a list of images from a url, and none of them worked correctly. I would either end up with no info displaying, or a 500 error. Can someone point me to an example or help me out here on how to do this properly. file_get_contents is not a viable option.

Example Directory: http://www.webtoonlive.com/webtoon/fantasy_world_survival/ch02/

Files i know that are in that directory: 001.jpg, 002.jpg, 003.jpg

I would like the output to be the exact url to the file.

Let me know if more info is needed, i'm not 100% sure exactly how to explain it right lol.

Edit:

ok so what I guess i actually want to do is check the url for all the image tags and display a list with the full url to that image.

New to working with this url+images+php stuff so please don't hit me too hard with your downvote hammer with no comments lol.

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

and it returned a blank page


Solution

  • Based loosely on the code you already tried (but was riddled with problems). This grabs the full contents of the URL $url, parses out the <img> src attributes, and then outputs them.

    Because this particular web host uses <base href=""/> tag to reset the base part of all URLs on the page, I've added a $base variable which you should set to the contents of the base tag.

    Additionally, it looks like this particular web host has some pretty smart anti-hotlinking in place, so not all images may be visible.

    But! Give it a whirl, let me know if it does what you need it to, and any questions.

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

    Sample output:

    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