Итак, такой код из functions.php: Код (PHP): function get_images() { $path_s = 'uploads/photos/thumb'; $file = scandir($path_s); if (false !== $file) { $file = preg_grep('/\\.(?:png|gif|jpe?g)$/', $file); foreach ($file as $image_s) $images_small[] = $path_s.'/'.$image_s; } $path_b = 'uploads/photos'; $files = scandir($path_b); if (false !== $files) { $files = preg_grep('/\\.(?:png|gif|jpe?g)$/', $files); foreach ($files as $image_b) $images_big[] = $path_b.'/'.$image_b; } return array($images_small, $images_big); } Юзаем в другом файле так: Код (PHP): <?php list ($img_s, $img_b) = get_images(); $b = 0; $s = 0; $count_b = count($img_b); $count_s = count($img_s); if (!empty($count_b) and ($count_s)){ while($b < $count_b and $s < $count_s){ echo '<a href='.$img_b[$b].' rel="lightgallery[photo]" title="Leaves after rain"><img src='.$img_s[$s].' class="katalog__preview" alt="2414"/></a>';$b++; $s++;}} ?>
а надо загруженные фотки в одном формате сохранять, тогда не придётся париться вообще такими мелочами, и в базу писать кто загрузил, видна ли и т.п. =)
Грузит 1 человек - админ=)Тут подключен скрипт lightgallery. Он выводит по порядку миниатюры, а по клику на миниатюру, соответственно большую загружает=) Есть тут такой баг, что он в линию не выводит 4 миниатюры, хоть они и влезают по размерам контента=) Добавлено спустя 19 секунд: А что здесь не так?=))
по сути тут написано немного через жопу, но работать будет =)) Просто это писал человек, который не понимал, что писал.
нашел тут прикол, на сайте, который на Кохана. Там пути либов и прочего. Я не стал браться за этот сайт в свое время=) Написал в браузере: к адресу в статьях: http://s01.su/articles/category/1%20UNION%20SELECT%201. Результат: http://s01.su/articles/category/1%20UNION%20SELECT%201 Жмем Environment=) Куки, Session=)
$_COOCKIE: Код (PHP): _ym_uid string(19) "1454791235257947935" _ym_isad string(1) "1" session string(189) "2d79b0d7100cc5bfc38040209ec0da64070513c4~YToyOntzOjExOiJsYXN0X2FjdGl2ZSI7aToxNDU1MTg1NzU3O3M6MTY6ImNhcHRjaGFfcmVzcG9uc2UiO3M6NDA …" Там же внизу на темном фоне написано белыми Environment=)
Это я к тому, что он багнутый=) Добавлено спустя 27 минут 22 секунды: Код (PHP): <?php list ($img_s, $img_b) = get_images(); $b = 0; $s = 0; $count_b = count($img_b); $count_s = count($img_s); if (!empty($count_b) and ($count_s)){ while($b < $count_b and $s < $count_s){ echo '<a href='.$img_b[$b].' rel="lightgallery[photo]" title="Leaves after rain"><img src='.$img_s[$s].' class="katalog__preview" alt="2414"/></a>';$b++; $s++;}} ?> Это я писал=)))) Не ну я вот так его себе представляю: 1) строка- записываем в переменные за одну операцию то, что вернула функция. 2) Тут понятно. 3) Тут тоже. Хотя мне уже кажется, что она лишняя=) можно было и одной обойтись=) 4) Записываем в переменную $count_b, количество элементов в массиве. 5) Тоже самое, но в другую. 6) Делаем проверку, не пустые ли переменные $count_b и $count_s, если нет, то выполняем тело. 7) Пока переменные меньше количества, которое находится в соответствующих переменных, выполняем тело 8) Собственно тело цикла вайл, пока условие верно, мы делаем "эхо" и по5тфиксный инкремент каждый раз, пока вайл не вернет true. Мне кажется, что можно было второй переменной избежать, не?=) Добавлено спустя 8 минут 9 секунд: Да, переменную можно и одну заюзать=)) Код сократил=) Код (PHP): <?php list ($img_b, $img_s) = get_images(); $count_i = count($img_b); if (!empty($count_i)){ for($i=0; $i < $count_i; $i++){ echo '<a href='.$img_b[$i].' rel="lightgallery[photo]" title="Leaves after rain"><img src='.$img_s[$i].' class="katalog__preview" alt="2414"></a>'; ;}} ?>
блин, понял. А почему их два массива тогда? Нафик это? Возвращай один массив. Код (PHP): [ 'small'=>'...', 'big'=>'...', 'description'=>'...', ];
Об этом я тоже уже подумал, но количество строк не уменьшится, имхо, а увеличится, не?=) Я делаю scandir двух папок в 1 функции, соответственно, функция возвращает 2 массива. Вот думаю, реал ее сократить? Код (PHP): function get_images() { $path_s = 'uploads/photos/thumb'; $file = scandir($path_s); if (false !== $file) { $file = preg_grep('/\\.(?:png|gif|jpe?g)$/', $file); foreach ($file as $image_s) $images_small[] = $path_s.'/'.$image_s; } $path_b = 'uploads/photos'; $files = scandir($path_b); if (false !== $files) { $files = preg_grep('/\\.(?:png|gif|jpe?g)$/', $files); foreach ($files as $image_b) $images_big[] = $path_b.'/'.$image_b; } return array($images_small, $images_big); }
читаемость повысится - это факт. Мозги расслабятся - это тоже большой плюс. У тебя один массив и в каждом его отдельном члене живёт вся информация по картинке. Можно даже отрисовку отдавать в другую функцю просто форычем скармливая айтем. Проще на бошку ложится такой код.
Всем привет=) Ребята, а mysqli_real_escape_string нужно использовать при выводе или вводе данных из БД? Или в обоих случаях?
Ок, спасибо за такой быстрый ответ=) А вот что лучше юзать htmlspecialchars() или htmlentities()? Или они одинаковы?
Спасибо=) Просто я действительно думал, что они идентичны=) И еще: mysqli_real_escape_string приведение к типу htmlspecialchars() защищают ли от SQL Injection? Конечно лучше была бы ссылка на информацию по защите от некоторых видов инъекций, которую вы считает действительно достойной для прочтения. А то прочту где-нибудь что-то типа от Могучего Попова и капец=)) Код (PHP): $result = mysqli_query($db, "SELECT * FROM `table`") or die("Ошибка: " . mysqli_error($db)); if ($result) { while($row = mysqli_fetch_assoc($result)) $item[] = $row; } Нужно тут приводить к типу вот так? Код (PHP): $item[] = (array)$row;