Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод всех изображений, через 1 тег.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Predator
Отправлено: 22 Июля, 2012 - 15:36:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


В нете не могу найти подходящею статью.
Как вывести через 1 тег, все картинки что лежат в 1 папке?
Получается только 1 изображение.

(Отредактировано автором: 22 Июля, 2012 - 15:39:22)

 
 Top
KingStar
Отправлено: 22 Июля, 2012 - 15:42:11
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




никак, только в цикле

я тебе писал - получаешь имена файлов в цикле, и к ним же применяешь <img src='./имя_файла.gif'>, одним ты не выведешь, что за бредовая идея


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Predator
Отправлено: 22 Июля, 2012 - 16:05:37
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


Мне не приходилось сталкиваца с циклами, но хотел бы понять их работу.
На примере изображений.
PHP:
скопировать код в буфер обмена
  1.  
  2. $x=$f[$i];
  3. while ($x++<10) {
  4. if ($x==3) break;
  5. echo "<b>Итерация $x</b><br>";
  6. }

Выводит бесконечное количество строчек с названием 1-ой картинки ,но с разными форматами.
 
 Top
EuGen Администратор
Отправлено: 22 Июля, 2012 - 16:33:39
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Можно сделать при помощи обычного glob:
PHP:
скопировать код в буфер обмена
  1. $sPath = '/path/to/images'; //без слеша в конце
  2. $rgExt = array('jpg', 'gif', 'png', 'jpeg');
  3. $sTag  = '<br/>';
  4. $rgImages = glob('{'. join(',', array_map(function($sItem) use ($sPath)
  5. {
  6.    return $sPath.'/*.'$sItem;
  7. }, $rgExt)).'}', GLOB_BRACE);
  8. echo(join($sTag, $rgImages));

- надеюсь, нигде не забыл ничего или не оставил лишнее (т.к. код выше не проверялся а писался в форме форума)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 22 Июля, 2012 - 16:43:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




блин...я уже минут10 втыкаю в точку перед * ))
а это очепятка была))
 
 Top
v.kam
Отправлено: 22 Июля, 2012 - 18:30:57
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $dir = "image/";
  4. if(is_dir($dir)) {
  5.         print '<table>';
  6.         $files = scandir($dir);
  7.         array_shift($files);
  8.         for($i=0; $i<sizeof($files); $i++) echo '<tr><td><img src="'.$dir.$files[$i].'"></td></tr>';
  9.         print '</table>';
  10. }
  11. else {
  12.         echo $dir.'такой директории нет;<br>';
  13. }
  14. ?>
  15.  

(Отредактировано автором: 22 Июля, 2012 - 18:32:51)

 
 Top
Predator
Отправлено: 22 Июля, 2012 - 18:55:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


СПс

(Отредактировано автором: 22 Июля, 2012 - 19:07:59)

 
 Top
armancho7777777 Супермодератор
Отправлено: 22 Июля, 2012 - 19:10:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Оберните тогда код, что выше, в функцию и возвращайте результат с помощью return.
(Добавление)
Это был ответ на сообщение, которое Вы исправили на СПс.
 
 Top
Predator
Отправлено: 22 Июля, 2012 - 19:47:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


Как правильно обернуть?
PHP:
скопировать код в буфер обмена
  1. if ($handle = opendir($_SERVER['DOCUMENT_ROOT'].'/templates/images/smail/')) {
  2. while (false !== ($file = readdir($handle))) {
  3. if ($file != "." && $file != "..") {
  4. $ff.="$file"."|";
  5. }
  6. }
  7. closedir($handle);
  8. }
  9. $f=explode ("|",$ff);
  10. $c=count($f);
  11. for ($i=0;$i<$c;$i++)
  12. {
  13. $f_r=explode(".",$f[$i]);
  14. if (($f_r[1]=="jpg") or ($f_r[1]=="gif"))
  15. {
  16.  
  17. $tpl->tags('{smail}', "<input type=\"radio\" name=\"img_smail\" value=\"$f[$i]\"><img src=\"".$redirect_url."/templates/images/smail/$f[$i]\">&nbsp;&nbsp;");  
  18. }
  19.  
  20. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB