Anonymous
Экранирующие пробелы в glob() в PHP?
Сообщение
Anonymous » 04 окт 2024, 06:17
У меня есть следующая функция в PHP, которая отлично работает, за исключением файлов с пробелами в именах (
например). Вот оно:
Код: Выделить всё
function getphotolist($currentalbum) {
$photos = glob($currentalbum.'/*.[Jj][Pp][Gg]');
$albumparts = explode('_', $currentalbum);
switch (array_key_exists(2,$albumparts)) {
case false:
usort($photos,"cmpexiftime");
break;
case true:
usort($photos,"cmpexiftimer");
break;
}
$photolist = "";
foreach($photos as $photo){
$phototitle = explode('_',basename($photo,".jpg"));
$title = $phototitle[0];
$thumb = $currentalbum.'/thumbs/'.basename($photo,".jpg").'_thumb.jpg';
$exif = read_exif_data_raw("$photo",0);
$desc = $exif["IFD0"]["ImageDescription"];
$camera = ucwords(strtolower($exif["IFD0"]["Model"]));
switch($exif["SubIFD"]["LensInfo"]) {
case "105.0 mm f/2.8":
$lens = "AF-S Micro-Nikkor 105mm ƒ/2.8 VR";
break;
case "50.0 mm f/1.8":
if ($camera=="Nikon D700") {
$lens = "AF-S Nikkor 50mm ƒ/1.8 G";
} else {
$lens = "AF Nikkor 50mm ƒ/1.8 D";
}
break;
case "18.0-55.0 mm f/3.5-5.6":
$lens = "AF-S Nikkor 18-55mm ƒ/3.5-5.6 II";
break;
default:
$lens = $exif["SubIFD"]["LensInfo"];
break;
}
$length = str_replace(" ","",$exif["SubIFD"]["FocalLength"]);
$shutter = str_replace(" ","",str_replace("ec","",$exif["SubIFD"]["ShutterSpeedValue"]));
$aperture = str_replace("f","ƒ",$exif["SubIFD"]["ApertureValue"]);
$iso = $exif["SubIFD"]["ISOSpeedRatings"];
list($width,$height) = getimagesize($photo);
if ($height==1080 && $width==1920) {
$photolist .= '';
} elseif ($height >= $width) {
$photolist .= '';
} else {
$photolist .= '';
}
}
return $photolist;
}
Может ли кто-нибудь подсказать, как это исправить, чтобы работать с файлами с пробелами? Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/198 ... lob-in-php
1728011856
Anonymous
У меня есть следующая функция в PHP, которая отлично работает, за исключением файлов с пробелами в именах ([code]Good picture.jpg[/code] например). Вот оно: [code]function getphotolist($currentalbum) { $photos = glob($currentalbum.'/*.[Jj][Pp][Gg]'); $albumparts = explode('_', $currentalbum); switch (array_key_exists(2,$albumparts)) { case false: usort($photos,"cmpexiftime"); break; case true: usort($photos,"cmpexiftimer"); break; } $photolist = ""; foreach($photos as $photo){ $phototitle = explode('_',basename($photo,".jpg")); $title = $phototitle[0]; $thumb = $currentalbum.'/thumbs/'.basename($photo,".jpg").'_thumb.jpg'; $exif = read_exif_data_raw("$photo",0); $desc = $exif["IFD0"]["ImageDescription"]; $camera = ucwords(strtolower($exif["IFD0"]["Model"])); switch($exif["SubIFD"]["LensInfo"]) { case "105.0 mm f/2.8": $lens = "AF-S Micro-Nikkor 105mm ƒ/2.8 VR"; break; case "50.0 mm f/1.8": if ($camera=="Nikon D700") { $lens = "AF-S Nikkor 50mm ƒ/1.8 G"; } else { $lens = "AF Nikkor 50mm ƒ/1.8 D"; } break; case "18.0-55.0 mm f/3.5-5.6": $lens = "AF-S Nikkor 18-55mm ƒ/3.5-5.6 II"; break; default: $lens = $exif["SubIFD"]["LensInfo"]; break; } $length = str_replace(" ","",$exif["SubIFD"]["FocalLength"]); $shutter = str_replace(" ","",str_replace("ec","",$exif["SubIFD"]["ShutterSpeedValue"])); $aperture = str_replace("f","ƒ",$exif["SubIFD"]["ApertureValue"]); $iso = $exif["SubIFD"]["ISOSpeedRatings"]; list($width,$height) = getimagesize($photo); if ($height==1080 && $width==1920) { $photolist .= ''; } elseif ($height >= $width) { $photolist .= ''; } else { $photolist .= ''; } } return $photolist; } [/code] Может ли кто-нибудь подсказать, как это исправить, чтобы работать с файлами с пробелами? Спасибо! Подробнее здесь: [url]https://stackoverflow.com/questions/19865110/escape-spaces-in-glob-in-php[/url]