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
Форумы портала PHP.SU :: Версия для печати :: Помогите пожалуйста новичку!
Форумы портала PHP.SU » Разное » Прочее » Помогите пожалуйста новичку!

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

1. evgenijj369 - 15 Декабря, 2015 - 13:59:45 - перейти к сообщению
Доброго времени суток!
Прошу помочь, кому не сложно!

На странице вывожу случайные картинки из одной папки, в 10-ти блоках.
К каждой случайно выведенной картинке нужно присвоить свою ссылку.
Делаю следующее...

if($image_1 == '1.png')
{
$link_image_1 = '1.php';
}

if($image_2 == '1.png')
{
$link_image_2 = '1.php';
}

if($image_3 == '1.png')
{
$link_image_3 = '1.php';
}

И так далее... Получается что к каждой картинке 10 условий пишет, а картинок несколько десятков.

Как всё это дело объединить, чтобы код был не таким длинным?!
Заранее благодарен!
2. Denkill - 15 Декабря, 2015 - 14:24:43 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. $img = array('1.png', '2.png', '3.png');//Массив с названием картинок.
  3. $array_value = array();//Массив с ссылками.
  4. foreach ($img as $key => $value) {
  5.         $a = explode(".", $value);
  6.         $array_value[$key] = $a[0].".php";
  7. }
  8. print_r($array_value);
  9. ?>
3. evgenijj369 - 15 Декабря, 2015 - 14:27:33 - перейти к сообщению
Спасибо большое, но я не на столько силён, чтобы разобраться в этом((( Я только учусь.
4. Denkill - 15 Декабря, 2015 - 14:35:24 - перейти к сообщению
А что тут разбираться если массив с картинка, он проходит цикл где с каждым элементом массива выдергивается то что до точка img1.png, и пихается в новый массив только с другим расширением img1.php, а потом выводится
5. evgenijj369 - 15 Декабря, 2015 - 14:48:57 - перейти к сообщению
Тут я всё упростил, чтобы понятнее было. На самом деле там всё сложнее... В общем нужно со своей картинкой выводить свою ссылку, но картинки берутся из папки и выводятся случайным образом. Картинки и ссылки имеют свои (разные) имена, а кроме ссылок к картинкам ещё будут title, alt и т.д... Вы уж не ругайтесь на меня, если что-то не так объясняю и туплю. Огорчение
6. Denkill - 15 Декабря, 2015 - 14:58:54 - перейти к сообщению
Тогда вот так.
PHP:
скопировать код в буфер обмена
  1. <?
  2. $dir = "/img"; //Название папки
  3. $array_value = array();//Массив с ссылками.
  4. $file = scandir($dir);
  5.         foreach ($file as $key => $value){
  6.             if(is_file($value)){
  7.                 $a = explode(".", $value);
  8.                 $array_value[$key] = $a[0].".php";
  9.             }  
  10.         }  
7. popover - 15 Декабря, 2015 - 15:04:27 - перейти к сообщению
evgenijj369, все тупили, это нормально.

Посмотрите, почитайте про базы данных, что они из себя представляют и как с ними работать. Решение задачи простое: записываете в базу картинки, к ним тайтлы и прочее (пишем не саму картинку, а путь до неё), далее как-то так


PHP:
скопировать код в буфер обмена
  1. $mysql = mysql_connect(/* ... */);
  2. $query = mysql_query('select * from Images');
  3. while($row = mysql_fetch_assoc($query))
  4. {
  5.     var_dump($row);
  6. }


mysql
8. evgenijj369 - 15 Декабря, 2015 - 15:06:13 - перейти к сообщению
Базы нет)))
9. popover - 15 Декабря, 2015 - 15:07:30 - перейти к сообщению
evgenijj369, а что есть?)
10. evgenijj369 - 15 Декабря, 2015 - 15:16:47 - перейти к сообщению
Только файлы))) Чисто информационный ресурс.
(Добавление)
Я правильно понял, что таким же образом, которым я вывожу картинки из папки, мне нужно выводить ссылку из файла со списком ссылок?
11. Denkill - 15 Декабря, 2015 - 15:22:16 - перейти к сообщению
evgenijj369, да.
12. evgenijj369 - 15 Декабря, 2015 - 15:25:53 - перейти к сообщению
Если не трудно, дайте пример в полном объёме! Откуда берём и как выводим, чтобы я полную картину увидел.
13. Denkill - 15 Декабря, 2015 - 15:33:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. $dir = "/img"; //Название папки
  3. $array_value = array();//Массив с ссылками.
  4. $file = scandir($dir);
  5.         foreach ($file as $key => $value){
  6.             if(is_file($value)){
  7.                 $a = explode(".", $value);
  8.                 $array_value[$key] = $a[0].".php";
  9.             }  
  10.         }
  11.  
  12. foreach ($array_value as $key => $value) {
  13.         echo "<a href='".$array_value[$key]."'><img src='".$file[$key]."'></a>";
  14. }  
14. evgenijj369 - 15 Декабря, 2015 - 15:39:11 - перейти к сообщению
Denkill, огромнейшее спасибо! Теперь разберусь.
(Добавление)
Уже стыдно писать((( Не получилось у меня объединить это всё в свой код.
Картинки выводят вот таким образом у меня.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. //указываем папки с изображениями
  3. $folder_mas = array('images/river','images/clouds','images/mountains');
  4. $images = array();
  5. //выбираем случайную папку
  6. $folder = $folder_mas[rand(0,2)];
  7. $all_files = scandir($folder);
  8. while ($i++ < sizeof($all_files)){
  9.    //выбираем только изображения с расширением .png, .jpg и .gif
  10.    if (!strstr($all_files[$i],".png") and !strstr($all_files[$i],".jpg") and
  11.    !strstr($all_files[$i],".gif")) continue;
  12.    array_push($images, $all_files[$i]);
  13. }
  14. //выбираем случайное изображение из папки
  15. $img_random = $images[rand(0,sizeof($images)-1)];
  16. $img_src = $folder."/".$img_random;
  17. echo '<img src="'.$img_src.'" alt="">';
  18. ТУТ НУЖНА ССЫЛКА
  19. ТУТ НУЖЕН TITLE
  20. ?>


Допишите пожалуйста в нём функцию, чтобы выводить ссылку из массива и title к каждой картинке.
15. Denkill - 15 Декабря, 2015 - 20:18:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. $folder_mas = array('images/river','images/clouds','images/mountains');
  3. $dir = $folder_mas[rand(0,2)]; //Название папки
  4. $array_value = array();//Массив с ссылками.
  5. $file = scandir($dir);
  6.         foreach ($file as $key => $value){
  7.             if(is_file($value)){
  8.                 $a = explode(".", $value);
  9.                 $array_value[$key] = $a[0].".php";
  10.             }  
  11.         }
  12.  
  13. foreach ($array_value as $key => $value) {
  14.         echo "<a href='".$array_value[$key]."'><img src='".$file[$key]."'></a>";
  15. }  

 

Powered by ExBB FM 1.0 RC1