У меня есть сценарий, который помогает мне добавить некоторые данные в файл csv, основываясь на факте, если изображение находится внутри папки или нет (завершено или нет). Файлы - это изображения, поэтому мне нужно проверить, существует ли файл, и если это png, jpg, jpeg, gif.Проверьте, существует ли файл (возможно многократное расширение)?
До сих пор он только проверял, является ли это JPG, но я хотел бы, чтобы он нашел файл, если это PNG или JPEG или даже GIF.
<?php
$columns = array("row1","row2","row3","row4","row5","row6","row7","row8","row9",
"row10","row11","row12","row13","row14","row15","row16","row17","row18"
);
$rootDir = "/path/to/images/folder/files";
$file = fopen("database.csv", "r") or die('fopen database failed');
$newFile = fopen("newdata.csv", "w") or die('fopen newdata.csv failed');
while (($data = fgetcsv($file, 999999, ";")) !== FALSE) {
$row = array_combine($columns, $data);
$filename = $row['row4'].".jpg"; // could be png or jpEg, or even gif
if (file_exists("$rootDir/$filename")) {
$row['image'] = .$filename; //also needs correct extension of image which exists.
$row['small_image'] = .$filename;
$row['thumbnail'] = .$filename;
}
fputcsv($newFile, array_values($row), ";",'"');
}
fclose($file);
fclose($newFile);
?>
Вы можете создать массив с расширениями и положить '$ имя_файла = $ . "JPG" строки [ 'row4']; // может быть png или jpEg или даже gif if (file_exists ("$ rootDir/$ filename")) { $ row ['image'] =. $ filename; // также требует правильного расширения существующего изображения. $ row ['small_image'] =. $ Filename; $ row ['thumbnail'] =. $ Filename; } 'in a для проверки расширений –
предложение: проверьте [exif_imagetype] (http://php.net/manual/en/function.exif-imagetype.php), он может дать вам более четкие детали типа изображения, чем проверка extension – bansi
Итак, 'row4' содержит корень имени файла без расширения? –