开发者

Copy images from url to server, delete all images after

I have an affiliate link with a product image

http://www.myaffiliate.com/products/product.jpg

I want to copy the imagine to my website, in a folder called lets say products. It's hosted on shared sherver, not my pc. I think the php copy() does not work, well tried it and I think my hosts doen't support the method. How can I do it, curl maybe? Then, I need a php command to delete all the images from the products folder - I'll do this with a cronjob.

<?php
$table = 'cron';

$feed = 'myfeed';

$xml = simplexml_load_file($feed);

mysql_query("TRUNCATE TABLE ".$table."", $dbh1);
mysql_query("TRUNCATE TABLE ".$table."", $dbh2);


function getimg($url) {         
        $headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';              
        $headers[] = 'Connection: Keep-Alive';         
        $headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';         
        $user_agent = 'php';         
        $process = curl_init($url);         
        curl_setopt($process, CURLOPT_HTTPHEADER, $headers);         
        curl_setopt($process, CURLOPT_HEADER, 0);         
        curl_setopt($process, CURLOPT_USERAGENT, $useragent);         
        curl_setopt($process, CURLOPT_TIMEOUT, 30);         
        curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);         
        cu开发者_Python百科rl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);         
        $return = curl_exec($process);         
        curl_close($process);         
        return $return;     
        } 

foreach( $xml->performerinfo as $performerinfo )
{
    $performerid = $performerinfo->performerid;
    $category = $performerinfo->category;
    $subcategory = $performerinfo->subcategory;
    $bio = $performerinfo->bio;
    $turnons = $performerinfo->turnons;
    $willing = $performerinfo->willingness;
    $willingness = str_replace(',', ', ', $willing); 
    $age = $performerinfo->age;
    $build = $performerinfo->build;
    $height = $performerinfo->height;
    $weight = $performerinfo->weight;
    $breastsize = $performerinfo->breastsize;
    $haircolor = $performerinfo->haircolor;
    $hairlength = $performerinfo->hairlength;
    $eyecolor = $performerinfo->eyecolor;
    $ethnicity = $performerinfo->ethnicity;
    $sexpref = $performerinfo->sexpref;
    $pic0 = $performerinfo->picture[0];
    $pic1 = $performerinfo->picture[1];
    $pic2 = $performerinfo->picture[2];
    $pic3 = $performerinfo->picture[3];
    $pic4 = $performerinfo->picture[4];   
    $test = $performerinfo->picture[0];  

    $imgurl = 'http://www.foodtest.ru/images/big_img/sausage_3.jpg'; 
    $imagename= basename($imgurl);
    if(file_exists('./tmp/'.$imagename)){continue;} 
    $image = getimg($imgurl); 
    file_put_contents('tmp/'.$imagename,$image); 

}  

   //baracuda reloaded
   mysql_query("TRUNCATE TABLE reloaded", $dbh1);
   mysql_query("TRUNCATE TABLE reloaded", $dbh2);

   mysql_query("INSERT INTO reloaded SELECT * FROM ".$table."", $dbh1); 
   mysql_query("INSERT INTO reloaded SELECT * FROM ".$table."", $dbh2); 
?>


use file_get_contents or cURL in a loop

    <?php 

    //loop with a list of images
    loop{
    $imgurl = 'url to image';
    $imagename= basename($imgurl);
    if(file_exists('./images_folder/'.$imagename)){continue;}
    $image = file_get_contents($imgurl);
    file_put_contents('images_folder/'.$imagename,$image);
    }
    ?>

    or cURL 

    <?php 
    //loop this
loop{
    $imgurl = 'url to image';
    $imagename= basename($imgurl);
    if(file_exists('./images_folder/'.$imagename)){continue;}
    $image = getimg($imgurl);
    file_put_contents('images_folder/'.$imagename,$image);
}
    ?>




   <?php
    //cURL function (outside of loop) to get img
        function getimg($url) {
            $headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';
            $headers[] = 'Connection: Keep-Alive';
            $headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
            $user_agent = 'php';
            $process = curl_init($url);
            curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($process, CURLOPT_HEADER, 0);
            curl_setopt($process, CURLOPT_USERAGENT, $useragent);
            curl_setopt($process, CURLOPT_TIMEOUT, 30);
            curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
            $return = curl_exec($process);
            curl_close($process);
            return $return;
        }
    ?>

in a file on your server that you want deleted put this in it and call it at END of your loops once you got all the images

<?php 
function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
            }
        }
        reset($objects);
        rmdir($dir);
        mkdir($dir);
    }
}

rrmrir('./products');
?>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜