當前:我的代碼保存了csv文件中給出的URL的圖像。php根據csv值從url保存的圖像重命名
目標:重命名根據在同一csv文件的值保存的圖像,並通過格式:CSV位置3,4,5,6,7,8
(例如100A1_https://www.instagram.com /p/BBzUXUFLrGH/_48.8486557_2.3481125)。
我想將this stackoverflow示例合併到我的代碼中。但無法如我所希望的那樣迷路。
<?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
我不知道我的理解正確:你想將文件從'的https牽強重命名:// www.instagram.com/p/BBzUXUFLrGH /''到100A1_https:// www.instagram.com/p/BBzUXUFLrGH/_48.8486557_2.3481125'? –
。圖像目前正在通過隨機計算機生成的與csv無關的命名約定(例如img_1)進行保存。 – eho