У меня есть PHP-скрипт, который читает каталог изображений и выдает результаты поиска пользователей.PHP-функция - заказ списка файлов readdir нечетный
Мне нужно найти способ сортировки этих результатов поиска из каталога, я знаю, что вы можете использовать natsort() для массива, но это не помогает, поскольку результаты не находятся в массиве, просто оператор while.
Кто-нибудь знает, возможно ли это? Или, может быть, было бы легче адаптировать мой код, чтобы сначала добавить имена файлов в массив?
<?php
$dir = get_post_meta($post->ID, "Library", true);
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if(stristr($file,$_POST['image_search'])){
echo ('<li><div class="thumb-contain"><a href="/'.$dir . $file.'" class="photo-link" rel="attachment"><img src="/asset-thumbs/'. $file .'" /></a><br/><p><a href="/'.$dir . $file.'" class="photo-link" target="_blank">View image</a> | <a href="/download.php?download_file='.$dir . $file.'">Download image</a> <p>'. $file .'</p></div></li>');
}
}
closedir($dh);
}
}
?>
Ok я получил это работает, добавив результаты в массив - Я не волшебник PHP, так что если кто-то видит, что-нибудь, что может быть чище, что было бы фантастическим, в противном случае спасибо за вашу помощь.
<?php
$dir = get_post_meta($post->ID, "Library", true);
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if(stristr($file,$_POST['image_search'])){
$files[] = $file;
}
}
closedir($dh);
natsort($files);
foreach($files as $file) {
echo ('<li><div class="thumb-contain"><a href="/'.$dir . $file.'" class="photo-link" rel="attachment"><img src="/asset-thumbs/'. $file .'" /></a><br/><p><a href="/'.$dir . $file.'" class="photo-link" target="_blank">View image</a> | <a href="/download.php?download_file='.$dir . $file.'">Download image</a> <p>'. $file .'</p></div></li>');
}
}
}
?>
Почему бы не перебрать результат readdir и не добавить элементы в массив. Затем отсортируйте этот массив? –