views:

18

answers:

3

Friends,

I have a problem............

Help me please........

Am getting the image url from my client, i want to store those images in my local folder.

if those images are in less, i will save them manually

But they are greater than 5000 images.........

Please give some code to down load all the images with PHP

A: 

you could try file_get_contents for this. just loop over the array of files and use file_get_contents('url'); to retrieve the files into a string and then file_put_contents('new file name'); to write the files again.

DoXicK
A: 

You may download file using file_get_contents() PHP function, and then write it on your local computer, for example, with fwrite() function.

The only opened question is, where to get list of files supposed to be downloaded - you did not specify it in your question.

Code draft:

$filesList = // obtain URLs list somehow
$targetDir = // specify target dir
foreach ($filesList: $fileUrl) {
  $urlParts = explode("/", $fileUrl);
  $name = $urlParts[count($urlParts - 1)];
  $contents = file_get_contents($fileUrl);

  $handle = fopen($targetDir.$filename, 'a');
  fwrite($handle, $contents);
  fclose($handle);
}
Kel
A: 

I'm not sure that this is what you want. Given a folder's (where PHP has the authority to get the folder's contents) URL and a URL you want to write to, this will copy all of the files:

function copyFilesLocally( $source, $target_folder, $index = 5000 )
{
    copyFiles( glob( $source ), $target_folder, $index );
}

function copyFiles( array $files, $target_folder, $index )
{
    if( count( $files ) > $index )
    {
        foreach( $files as $file )
        {
            copy( $file, $target_folder . filename( $file ) );
        }
    }
}

If you're looking to a remote server, try this:

function copyRemoteFiles( $directory, $target_folder, $exclutionFunction, $index = 5000)
{
    $dom = new DOMDocument();
    $dom->loadHTML( file_get_contents( $directory ) );
    // This is a list of all links which is what is served up by Apache 
    // when listing a directory without an index.
    $list = $dom->getElementsByTagName( "a" );
    $images = array();
    foreach( $list as $item )
    {
        $curr = $item->attributes->getNamedItem( "href" )->nodeValue;
        if( $exclutionFunction( $curr ) )
            $images[] = "$directory/$curr";
    }
    copyFiles( $images, $target_folder, $index );
}

function exclude_non_dots( $curr )
{
    return strpos( $curr, "." ) != FALSE;
}

copyRemoteFiles( "http://example.com", "/var/www/images", "exclude_non_dots" );
Christopher W. Allen-Poole