Выводить рандомно картинок+ссылка в формате html через скрипт php

Тема в разделе "PHP", создана пользователем Starle, 17 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Starle

    Starle Создатель

    Регистр.:
    18 апр 2009
    Сообщения:
    10
    Симпатии:
    0
    Выводить рандомно картинок+ссылка в формате html через скрипт php
    Искал похожу что-то не нашел подскажите как организовать такое , картинки лежат в папке с сайтом.
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    можете выносить мне предупреждение, но я вообще ниче не понял из первого поста. что нужно то?

    вот получение пути до случайной картинки

    PHP:
    <?php 
    $image_dir 
    'images'
    $count 0
    if (
    $handle opendir($image_dir)) { 
        
    $retval = array(); 
        while (
    false !== ($file readdir($handle))) { 
            if ((
    $file <> ".") && ($file <> "..")) { 
            
    $retval[$count] = $file
            
    $count $count 1
                } 
        } 

        
    closedir($handle); 

    shuffle($retval); 
    $current_image $retval[0]; 
    ?> 
     
  3. weststat

    weststat Создатель

    Регистр.:
    21 июл 2010
    Сообщения:
    49
    Симпатии:
    1
    в смысле просто картинку в теге <img...>? используй функции работы с файлами
     
  4. Super_BOT

    Super_BOT

    Регистр.:
    21 апр 2009
    Сообщения:
    256
    Симпатии:
    28
    Как вариант, можно создать папку с изображениями, изображения все переименовать по маске (например в тотал командере), приведя к виду img1.jpg,img2.jpg... И далее при выводе использовать конструкцию наподобиее этой
    Код:
    echo "<img src='images\img".mt_rand(1,100)."'>";
    Где мт_ранд возвращает рандомное число от 1 до 100
    По поводу рандомных ссылок точно так же, записать их все в файл с сылками, файл открывать через file() и работать как с массивом, выводя рандомный элемент массива от 0 до count($name_file)
     
  5. Starle

    Starle Создатель

    Регистр.:
    18 апр 2009
    Сообщения:
    10
    Симпатии:
    0
    Нужно чтоб рандомно вывелась одна из 3 строчек в виде:
    <a href="www.site.ru"><img src="images/1" /></a>
    <a href="www.site.ru"><img src="images/2" /></a>
    <a href="www.site.ru"><img src="images/3" /></a>
    Что за функции работы с файлами? мне их использовать?
     
  6. Super_BOT

    Super_BOT

    Регистр.:
    21 апр 2009
    Сообщения:
    256
    Симпатии:
    28
    1) Если у вас эти строчки находятся в файле in.txt, то это будет примерно так
    Код:
    $f_in="in_file.txt";
    if(!file_exists($f_in)){echo "no file";куекгт;}
    $file_in=file($f_in);
    
    $str_out=$file_in[mt_rand(0,count($file_in))];
    echo $str_out;
    
    2) Если у вас всегда будут ссылки и картинки в таком виде, то никаких файлов не нужно,, напишите просто

    Код:
    echo "<a href='www.site.ru'><img src='images/".mt_rand(1,3)."' /></a>"
    P.S. во втором случае может придется экранировать слешы
     
    Starle нравится это.
  7. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Super_BOT, только не
    PHP:
    $file_in[mt_rand(0,count($file_in))]
    а
    PHP:
    $file_in[mt_rand(0,(count($file_in)-1))]
    Ведь если рендом выдаст максимальное значение, то такого элемента в массиве просто не будет...
     
  8. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    а вам-то за что?
    из первого поста ничего не понятно => ТС нарушил правила раздела...

    2 Starle
    сформулируйте правильный вопрос
    помогите нам помочь вам (с)
     
  9. Super_BOT

    Super_BOT

    Регистр.:
    21 апр 2009
    Сообщения:
    256
    Симпатии:
    28
    На самом деле это вариация на тему открытия файла.
    Лично для себя считаю что такой способ открытия файла для чтения как минимум громоздкий и не красивый в отличии от

    Код:
    $buffer=file("inputfile.txt");
    echo $buffer[(0,mt_rand(count($buffer)-1))]."\r\n";
    ...
    unset $buffer;
    
    Как видите кода меньше, а делает абсолютно тоже, и хранятся данные даже в таком же виде
     
  10. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    можно просто вот так
    PHP:
    <?php $banner_name = array('<a href="www.site.ru"><img src="images/1" /></a>','<a href="www.site.ru"><img src="images/2" /></a>','<a href="www.site.ru"><img src="images/3" /></a>');
    srand((double)microtime()*100000);
    $banner $banner_name[rand(0,2)];
    echo 
    $banner;
     
    ?>
     
Статус темы:
Закрыта.