2013-05-19 2 views
0

Я использую file_exists, чтобы определить, находятся ли определенные файлы изображений в указанном каталоге, и если они есть, отображая их в ротаторе изображения. Он отлично работает, но код кажется очень длинным, за то, что он достигает. Есть ли способ лучше?Конкретный метод использования file_exists для ряда имен файлов

На данный момент у меня есть:

<?php 
     if (file_exists($reg_photo_1_f)) { 
     echo "<li>"; 
     echo "<a href=". $reg_photo_1_f .">"."</a>"; 
     echo "</li>"; 
     } 
     if (file_exists($reg_photo_2_f)) { 
     echo "<li>"; 
     echo "<a href=". $reg_photo_2_f .">"."</a>"; 
     echo "</li>"; 
     } 
     if (file_exists($reg_photo_3_f)) { 
     echo "<li>"; 
     echo "<a href=". $reg_photo_3_f .">"."</a>"; 
     echo "</li>"; 
     } 
     if (file_exists($reg_photo_4_f)) { 
     echo "<li>"; 
     echo "<a href=". $reg_photo_4_f .">"."</a>"; 
     echo "</li>"; 
     } 
     if (file_exists($reg_photo_5_f)) { 
     echo "<li>"; 
     echo "<a href=". $reg_photo_5_f .">"."</a>"; 
     echo "</li>"; 
     } 
     ?> 

Где каждый $ reg_photo_x_f это путь изображения. Я надеюсь, что есть способ, которым я могу адаптировать этот код, чтобы он мог зацикливаться до тех пор, пока не будут найдены все изображения. Имена изображений сами являются хешами, созданными с другой страницы, поэтому, очевидно, не последовательны.

Страница, создающая хэши, объединяет значение, относящееся к странице в виде переменной php с предопределенной солью, так что имя изображения сопоставляется почти так же, как совпадение с хэшированным паролем в базы данных и т.д. Например, за $ reg_photo_1_f у меня есть этот код на той же странице:

$reg_photo_1 = sha1("$bh".PHOTO_REG_1); 
$reg_photo_1_f = $reg_photo_root.$reg_photo_1.".jpg"; 

... где $ ЧД переменная отношение к странице пользователь находится на и PHOTO_REG_1 является «соль».

Уверен, что есть намного лучший способ назвать изображения, но это был самый простой способ, с помощью которого я мог работать с динамическими страницами.

+6

Вместо использования отдельной переменной для каждого имени файла поместите все их в массив. Затем он будет использовать простой цикл для обработки всех них. – Jon

ответ

1
<?php 

$files = glob('*.jpg'); 
foreach($files as $file) { 
     echo "<li>"; 
     echo "<a href=". $file.">"."</a>"; 
     echo "</li>"; 
} 
?> 
+2

Если вы используете 'glob()' нет необходимости использовать 'file_exists()' :) – HamZa

+0

Извините HamZa DzCyberDeV :) –

+0

Вы все еще можете редактировать :) – HamZa

Смежные вопросы