Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Случайный вывод картинки...

Сообщения:  [1-10]   [11-18] 

 
 автор: Евгений Петров   (15.10.2005 в 21:29)   письмо автору
 
   для: Football   (15.10.2005 в 13:00)
 

1) EvgenLog писал что ему надо вывести картинк и масштабировать её.
2) Где я там массив обхожу, скрипт рекурсивно обходит каталог и вложенные в него каталоги ищет графические файлы и заносит пути в массив, а потом из массива рандомом выбирается один файл.

   
 
 автор: EvgenLog   (15.10.2005 в 20:18)   письмо автору
 
   для: Football   (15.10.2005 в 16:25)
 

Не мне одну надо... Но всё равно спасибо! Вдруг пригодится...

   
 
 автор: Football   (15.10.2005 в 16:25)   письмо автору
 
   для: EvgenLog   (15.10.2005 в 13:16)
 

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

$max:=2; // кол-во выводимых картинок
for ($i=0;$i<$max;$i++) {
// Тут будет идти сам код
}

   
 
 автор: EvgenLog   (15.10.2005 в 13:16)   письмо автору
837 байт
 
   для: OZ_   (15.10.2005 в 13:11)
 

Короче напарился я с этим кодом, но написал всё таки свой и он великолепно работает, но пока только для одного формата "*.jpg".
Он прикреплён к сообщению, если кому интересно, то посмотрите, обсудите, укажите на недостатки... И т.д.... Всем спасибо за помощь!

P.S. Скрипт использует ещё один файл... Это как раз тот, что масштабирует картинки на лету... Но его я не стал прикреплять...

   
 
 автор: OZ_   (15.10.2005 в 13:11)   письмо автору
 
   для: Football   (15.10.2005 в 13:00)
 

А каждой картинке соответствует своя подпись? Если так - используйте код Football, иначе код Евгения Петрова.

   
 
 автор: Football   (15.10.2005 в 13:00)   письмо автору
 
   для: EvgenLog   (14.10.2005 в 23:33)
 

Что значит масштабировать картинку?
И зачем тебе массив обходить, если у тебя все данные файла в массив записываются?

   
 
 автор: EvgenLog   (15.10.2005 в 00:59)   письмо автору
 
   для: Boss   (15.10.2005 в 00:34)
 

загонять каждую картинку в массив? Их количество будет постоянно менятся, они будут загружаться пользователями...
Вот объясните мне кто-нибудь... Я изменил скрипт вот так...

<?
...
$img_name_array explode("."$rand_img[$index]);
          
$img_type end($img_name_array);


if(
is_file($main_img_folder.$rand_img[$index]) && in_array($img_type$image_extensions)
&& 
$name basename($rand_img[$index],".jpg"))
   {
      
$source=$main_img_folder.$rand_img[$index];

          
// выводим картинку на экран
                     
$size_img getimagesize($main_img_folder."/".$rand_img[$index]);
...
?>

Теперь с вероятностью в 30% - 40% ничего не показывается...
Я прикрепил полный код скрипта, может кто посмотрит в чём там дело?

   
 
 автор: Boss   (15.10.2005 в 00:34)   письмо автору
 
   для: EvgenLog   (15.10.2005 в 00:11)
 

Попробуйте так:


$pictures = array('11.jpg', '12.jpg'); ' и так далее, загоняйте в массив картинки
srand((float)microtime()*100000000);
shuffle($pictures);
for ($i=0; $i<1;$i++)
{ echo $pictures[$i]; }

   
 
 автор: EvgenLog   (15.10.2005 в 00:11)   письмо автору
 
   для: Евгений Петров   (15.10.2005 в 00:02)
 

Спасибо... Попробую, но сначала добъю этот код! У меня получилось убрать цикл - работате, но картинка то выводится, то не выводится... Он видимо, что-то не то ещё выводит, вот таким код стал...

<?php
$main_img_folder 
"./$main_files_dir/Gallery/Interiors/";
$open_main_img_folder opendir($main_img_folder);
$image_extensions = array("jpg""png""bmp""jpe""jpeg");

          
$filename "$main_img_folder/config.ini";
          
// Читаем содержимое файла $filename
          
$fd fopen($filename"r");
          
$bufer fread($fd,filesize($filename));
          
fclose($fd);
          
// Разбиваем содержимое файла на подстроки
          // разделителем которых выступают ,
          // помещая их в массив $phrase
          
$rand_img explode("\r\n",$bufer);
          
// Получаем случайный индекс массива $phrase
          
$index rand(0,count($rand_img)-1);

   if(
is_file($main_img_folder.$rand_img[$index]))
   {

          
// Выводим фразу
          
$source=$main_img_folder.$rand_img[$index];

          
// выводим картинку на экран
                     
$size_img getimagesize($main_img_folder."/".$rand_img[$index]);
                     
$name basename($rand_img[$index],".jpg");
                     echo 
"<table align='left' valign='top' border='0'>
                        <tr>
                           <td width='25'></td>
                        </tr>
                     </table>
                        <table align='left' valign='top' border='1'>
                           <tr>
                              <td align='center'>
                                 Интерьеры
                              </td>
                           </tr>
                           <tr>
                              <td>
                                 <img src='img.php?file=
$source' border='0' alt='$name'>
                              </td>
                           </tr>
                           <tr>
                              <td>
                                 <center>
                                 <font color='#2954D1'><b>
$size_img[0]x$size_img[1]</b><br>
                                 <a href='
$main_url/$main_files_dir/Gallery/Interiors/$name.jpg'><b>$name</b>
                                 </font>
                                 </center>
                              </td>
                           </tr>
                        </table>"
;
    }
?>

   
 
 автор: Евгений Петров   (15.10.2005 в 00:02)   письмо автору
 
   для: EvgenLog   (14.10.2005 в 23:48)
 

Попробуй такой код. Правда он не масштабирует картинки:
<?
function Tree($directory)
{
  global 
$pathes;
  
$dir opendir($directory);
  while(
$file readdir($dir))
  {
    if(
is_file($directory."/".$file) && preg_match("/gif|bmp|jpg|png|jpeg/i",strrchr($file".")))
      
$pathes[] = $directory."/".$file;
    elseif(
is_dir($directory."/".$file) && ($file!=".") && ($file!=".."))
      
Tree($directory."/".$file);
  }
  
closedir($dir);
}
Tree("C:\Pictures");
echo 
$pathes[rand(0,count($pathes))];
?>

и если картинок очень много будет, то память неэкономно расходуется.

   

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования