derzeit: Mein Code speichert Bilder von URLs in einer CSV-Datei gegeben.php Umbenennen Bild gespeichert von URL basierend auf csv Werte
Ziel: gespeicherte Bilder umbenennen nach Werten in der gleichen CSV-Datei, und formatiert von: csv Positionen 3,4,5,6,7,8
(zB 100A1_https: //www.instagram.com /p/BBzuXUFLrGH/_48.8486557_2.3481125).
Ich versuche this stackoverflow Beispiel in meinen Code zu verschmelzen. aber unfähig zu, wie ich hoffnungslos verloren bin.
<?php
$destination = 'images/';
$dom = new DOMDocument;
$dir = "dir to photos";
$row = 0;
if (($handle = fopen("data/testcsvfile.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 100, ",")) !== FALSE /*&& $row < 1*/) {
$row++;
// number of fields in each row
$num = count($data);
// get url from position in csv
$url = $data[6];
echo $row . " " . $url. PHP_EOL;
if(strlen($url) > 0){
// if we have a url, get the contents
$page = file_get_contents($url);
//echo $page;
$dom->loadHTML($page);
// find url using meta tag
$my_tags = $dom->getElementsByTagName('meta');
// find which one is the image and grab and save
foreach ($my_tags as $tag) {
if($tag->getAttribute("property") == "og:image"){
$image_url = $tag->getAttribute('content');
echo $image_url . PHP_EOL;
$the_image = file_get_contents($image_url);
// rename file based on csv
// $newname = "$dir"."$names[3] $names[4] $names[5]".";
rename($newname);
file_put_contents($destination . "img_" . $row . ".jpg", $the_image);
}
}
}
}
fclose($handle);
}
?>
// test csv file
Mon,1,0,100,A,1,https://www.instagram.com/p/BBzUXUFLrGH/,48.8486557,2.3481125
Mon,1,0,100,A,1,https://www.instagram.com/p/BAe0tGULrC1/,48.85272468,2.347259349
Mon,1,0,100,A,1,https://www.instagram.com/p/_zik5YLrMf/,48.85356691,2.345645975
ich bin nicht sicher, ich richtig verstehe: versuchen Sie die Datei geholt von 'https umbenennen: // www.instagram.com/p/BBzUXUFLrGH /' auf '100A1_https: // www.instagram.com/p/BBzUXUFLrGH/_48.8486557_2.3481125''? –
genau. Bilder werden derzeit durch eine zufällige computergenerierte Namenskonvention (z. B. img_1) gespeichert, die nichts mit dem csv zu tun hat. – eho