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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Поиск и вывод картинок
 
 автор: SS   (19.01.2005 в 04:50)   письмо автору
 
 

Здравствуйте.

Помогите, пожалуйста, с поиском по картинкам. Меня интересует следующее.
Поиск картинки по подписи к картинке <img alt>.
Поиск точной фразы или совпадение с любой частью слова.

Вывод найденных картинок в виде превьюшек, если можно, то тех, которые уже существуют (они находятся в той же директории, что и большая картинка, но у нее после названия добавляется -0, например, у картинки ani001.jpg превьюшка ani001-0.jpg). Или, если так нельзя, - чтобы размеры были не больше, чем 90х90.

Вывод в виде таблицы примерно такого плана: http://ancientrome.ru/art/liter/rsp/search.htm. Найденное слово выделить жирным.

С уважением, Сосновский Сергей

   
 
 автор: cheops   (19.01.2005 в 12:45)   письмо автору
 
   для: SS   (19.01.2005 в 04:50)
 

Про создание уменьшенных изображений можно почитать в теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145, про поиск в тэге <img alt> можно почитать http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=981

PS Если что-то не заладится - пишите.

   
 
 автор: SS   (19.01.2005 в 16:45)   письмо автору
 
   для: cheops   (19.01.2005 в 12:45)
 

Конечно не заладилось :)
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/search.php

Для начала тогда хотелось бы найти в директории http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/ файлы, содержащие в ALT слово "Август". Известно, что их там 74 + 1 <META NAME="ROBOTS" CONTENT="NOINDEX">, если это принимается во внимание.

Подскажите, что не так там.

   
 
 автор: SS   (19.01.2005 в 18:40)   письмо автору
 
   для: cheops   (19.01.2005 в 12:45)
 

Так, покопался с вариантом base.txt - все работает замечательно!
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/search2.htm

ВОПРОСЫ:

1. Как там дописать, чтобы в случае, если ничего не нашло, то выводило об этом сообщение (сейчас выдает ошибку:
Warning: Invalid argument supplied for foreach() in /home/ancientrome/html/art/artwork/sculp/rom/imp/augustus/search2.php on line 28)

2. Как автоматизировать процесс создания BASE.TXT - т.е., чтобы скрипт прошелся по директориям всех уровней и создал из IMG ALT файл BASE.TXT с данными? Требуется имя файла и путь к нему из той директории, откуда запущен скрипт + полностью ALT. Конечно, хотелось бы при этом какой-то структуры создаваемого файла для визуального просмотра.

3. Возможность вывода текста IMG ALT напротив картинки.

4. Возможность попасть с найденной картинки на html-файл, ее содержащий.

5. Сообщение, сколько всего найдено файлов по запросу.

6. Нумерация файлов по порядку.

   
 
 автор: cheops   (19.01.2005 в 22:49)   письмо автору
 
   для: SS   (19.01.2005 в 18:40)
 

1. После первого цикла foreach следует организовать проверку массива $photo_path
<?php
  
if(!isset($photo_path))
  {
    exit(
"К сожалению, ничего не найдено, попробуйте другое ключевое слово");
  }
?>

2-3. Это можно... но нужен файлик для примера.
4. Это нужно в усложнять структуру base.txt и прописывать адрес напротив картинки...
5. Это осуществляется при помощи кода
<?php
  
echo "Найдено - ".count($photo_path)." файлов";
?>

6. Хм... ну можно добавить нумерованный список средствами HTML:
<?php
// Выводим фотографии 
echo "<ol>";
foreach(
$photo_path as $pathp

echo 
"<li><IMG src=$pathp width=779 height=106 border=0><br>"

echo 
"</ol>";
?>

   
 
 автор: SS   (20.01.2005 в 00:36)   письмо автору
 
   для: cheops   (19.01.2005 в 22:49)
 

Теперь перебираемся для обкатки поиска сюда:
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/search3.htm

1) Работает. СПАСИБО!

5) Работает только в конце страницы; в начале страницы, где, по идее, сообщению о количестве найденных совпадений самое место, не работает, показывает кол-во = 0

6) В нашем случае используем таблицу из двух колонок и по строке на каждую найденную картинку. В таблице <li> не работает! Таблица же используется для более удобного представления найденных результатов (т.е., в левой колонке - превьюшки, в правой - текст).

   
 
 автор: cheops   (20.01.2005 в 00:51)   письмо автору
 
   для: SS   (20.01.2005 в 00:36)
 

5-6) А вы делайте следующим образом:
<?php
  
foreach($photo_line as $lines
  { 
    
// Проверяем входит ли в состав строки искомое 
    // слово - если входит - запоминаем его номер. 
    
if(preg_match("|".$_GET['name']."|i"$lines)) 
    { 
      
$path substr($lines,0,strpos($lines," ")); 
      
$photo_path[] = $path
    } 
  } 
  
// Число фотографий
  
$count count($photo_path);
  
// А вот тут начинайте формировать страницу
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Результаты поиска</title>
... ты-ры пы-ры пасатижи...
<?php
  $i 
0;
  
// Выводим фотографии 
  
foreach($photo_path as $pathp
  { 
    
$i++;
    echo 
"$i <IMG src=$pathp width=779 height=106 border=0><br>"
  } 
?>

   
 
 автор: SS   (20.01.2005 в 01:28)   письмо автору
 
   для: cheops   (20.01.2005 в 00:51)
 

Отлично, все работает, СПАСИБО!
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/search4.htm (border - оставлено для наглядности)

   
 
 автор: SS   (20.01.2005 в 01:08)   письмо автору
 
   для: cheops   (19.01.2005 в 22:49)
 

2) Автоматизация создания BASE.TXT
Допустим, скрипт нужно запустить из директории http://ancientrome.ru/art/artwork/ вглубь на все подпапки (5-7, не важно сколько, уровней).
По каждой, соотвественно, найденной картинке, создать запись:
а) относительный адрес картинки;
б) относительный адрес страницы с этой картинкой;
в) содержание подписи к картинке;
ну и остается возможность добавить ручками ключевые слова от себя, если угодно.
Есть только один момент - как быть при переиндексации? надо думать, ручная работа полетит... Тем не менее, это уже дело пятое. Главная задача - обработать весь массив информации. Ну а там, если кому-то хочется, можно разделить BASE-файлы по тематикам - на каждый корневой каталог по базе - если, разумеется, такая структура предусмотрена при создании сайта.

3) Пожалуйста, файлик для примера:
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/base.txt
(информацию о названии файла, разумеется, отбросить).

4)
>4. Это нужно в усложнять структуру base.txt и прописывать
>адрес напротив картинки...
Давайте усложним. Оно того стоит! Если не попасть на страницу с поиска - то для чего тогда вообще поиск?

   
 
 автор: cheops   (20.01.2005 в 01:33)   письмо автору
 
   для: SS   (20.01.2005 в 01:08)
 

Знаете, я сейчас, отправляюсь спать так как, завтра рано вставать и весь день бегать... доберусь до вашей задачи наверное поздно... если я забуду, про неё поднимите пожалуйста тему.

   
 
 автор: cheops   (20.01.2005 в 22:08)   письмо автору
 
   для: SS   (20.01.2005 в 01:08)
 

2) Здесь требует пример HTML-страницы, т.е. то, что подлежит разбору.
3-4) Следует добавить файл url.txt в котором будут перечислены адреса страниц, на которые в каждой строчке содержит по одному адресу, обязательно заканчивающегося прямым слешем, в не зависимости от того, директория это или файл
http://www.softtime.ru/forum/index.php/
http://www.softtime.ru/hret.html/
http://www.sotttime.ru/dic/index.html/
http://www.google.com/

Следует так же изменить структуру base.txt, в начале должна идти номер строки в файле url.txt, которому соответствует данная картинка (нумерация с 0!):
0 aug016-0.jpg Рим. Голова Августа.
0 aug031-0.jpg Голова императора Ав
0 aug040-0.jpg Октавиан Август. Арл
1 aug055-0.jpg Конная статуя Октави
1 aug052-0.jpg Голова Августа из Ар
1 aug043-0.jpg Октавиан Август. Вен
2 aug044-0.jpg Октавиан Август. Вен
2 aug059-0.jpg Голова Октавиана. Мр
2 aug018-0.jpg Октавиан Август. Вер
3 aug047-0.jpg Голова Августа в кор
3 aug027-0.jpg Голова императора Ав
3 aug060-0.jpg Статуя Октавиана Авг

Скрипт поиска в этом случае преобретает вид:
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
// Имя файла с путями к фотографиям и ключевыми словами 
$filename "base.txt";
$filurl "url.txt"
// Помещаем содержимое файла в массив $photo_line 
$photo_line file($filename); 
// Проверяем то, что передано в форме 
// дабы исключить взлом 
$_GET['name'] = str_replace("."," ",$_GET[name]); 
$_GET['name'] = str_replace("'"," ",$_GET[name]); 
$_GET['name'] = str_replace('"'," ",$_GET[name]); 
if(empty(
$_GET['name'])) 

  exit (
"Текстовое поле осталось не заполненным - введите слово для поиска"); 

// Открываем файл url.txt c реальными путями к фотографии
$url file($filurl);
// В цикле ищем вхождения 
foreach($photo_line as $lines

  
// Проверяем входит ли в состав строки искомое 
  // слово - если входит - запоминаем его номер. 
  
if(preg_match("|".$_GET['name']."|i"$lines)) 
  { 
    
$temp substr($lines,strpos($lines," "));
    
$temp trim($temp);
    
$path substr($temp,0,strpos($temp," ")); 
    
$photo_path[] = trim($url[substr($lines,0,strpos($lines," "))]).$path
  } 

// Выводим фотографии 
foreach($photo_path as $pathp

  
// Теперь разбиваем строку на директорию и файл
  
$arr pathinfo($pathp);
  
// Ссылка на исходную HTML-страницу
  
echo "<a href=$arr[dirname]>"
  
// Ссылка на файл
  
echo "<IMG src=$arr[basename] width=779 height=106 border=0><br>"
  echo 
"</a>";
  unset(
$arr);

?>

   
 
 автор: SS   (21.01.2005 в 01:14)   письмо автору
 
   для: cheops   (20.01.2005 в 22:08)
 

Замечательно, работает!
(http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/search5.htm)

2)
Пример страницы, которую надо проиндексировать? Любая. Например.
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/aug076.htm
Или вот, где на одной станице две картинки:
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/aug007.htm

Кстати, подумал - наверное, при переиндексации не надо обновлять данных, чтобы не терять набранных вручную ключевых слов. Т.е., если есть такой файл - то поехали дальше, не меняем.

3) Вывод подписи к картинке в результатах поиска. Ключевые слова, набранные вручную, не выводить (пусть они будут в BASE.TXT в любых скобках, но выводить их не надо.)

   
 
 автор: SS   (22.01.2005 в 17:35)   письмо автору
 
   для: cheops   (20.01.2005 в 22:08)
 

Очень жду ответ. Хотя бы по п.3.
Извиняюсь за навязчивость.

   
 
 автор: cheops   (22.01.2005 в 17:38)   письмо автору
 
   для: SS   (22.01.2005 в 17:35)
 

Что-то просмотрел ваш ответ и он отметился у меня как прочитанный :))) сегодя ближе к ночи постараюсь отписаться...

   
 
 автор: cheops   (23.01.2005 в 02:20)   письмо автору
 
   для: SS   (22.01.2005 в 17:35)
 

Дайвайте со скана директорий начнём. Поздненько я до вас добрался :)))
<?php
  
// Считаем число строк в файле url.txt
  
$arr = array();
  
$arr file("url.txt");
  
$i count($arr);
  
// Открываем файл url.txt на запись
  
$fd fopen("url.txt","a");
  
// Открываем файл base.txt на запись
  
$fb fopen("base.txt","a");
  
// Открываем текущую директорию
  
$dir opendir(".");
  
// Читаем в цикле директорию
  
while (($file readdir($dir)) !== false)
  {
     
// Если файл обрабатываем его содержимое
     
if($file != "." && $file != "..")
     {
       if(
is_file($file))
       {
         
// Записываем имя файла в url.txt
         
fwrite($fd$file."/\n");
         
// Получаем содержимое файла
         
$buffer file_get_contents($file);
         
// Извлекаем пути к фотографиям
         
$patern "|<img[\s]*alt[^\"]*\"([^\"]*)\"[\s]*src[^\"]*\"([^\"]*)|i";
         
preg_match_all($patern$buffer$outPREG_SET_ORDER);
         if(isset(
$out[0]))
         {
           
$out[0][1] = str_replace("\r\n","",$out[0][1]);
           
$out[0][1] = str_replace("\n","",$out[0][1]);
           
fwrite($fb,"$i ".$out[0][2]." ".$out[0][1]."\n");
         }
         if(isset(
$out[1]))
         {
           
$out[1][1] = str_replace("\r\n","",$out[1][1]);
           
$out[1][1] = str_replace("\n","",$out[1][1]);
           
fwrite($fb,"$i ".$out[1][2]." ".$out[1][1]."\n");
         }
         
$i++;
       }
     }
  }
  
// Закрываем директорию
  
closedir($dir);
  
// Закрываем файл url.txt
  
fclose($fd);
  
// Закрываем файл base.txt
  
fclose($fb);
?>

Так файлы url.txt и base.txt могут иметь записи до сканирования, но каждый из них должен имть в конце пустую строку. Скрипт сканирует текущую директорию и дополняет файлы base.txt и url.txt. Я так как понял в HTML-файлах больше двух фотографий не бывает? Поэтому случаи больше 2-х фотографий не обработаны. Осторожно повтороное сканирование добавит файлы второй раз.
3) Так а с третьим чего у нас: выводить то, что в alt-параметре тэга img?

   
 
 автор: SS   (23.01.2005 в 02:32)   письмо автору
 
   для: cheops   (23.01.2005 в 02:20)
 

Да, конечно выводить. И если можно, выделить найденный текст жирным.

   
 
 автор: cheops   (23.01.2005 в 02:45)   письмо автору
 
   для: SS   (23.01.2005 в 02:32)
 

Посмотрите, вот этот обработчик поисковой формы:
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
// Имя файла с путями к фотографиям и ключевыми словами 
$filename "base.txt"
$filurl "url.txt"
// Помещаем содержимое файла в массив $photo_line 
$photo_line file($filename); 
// Проверяем то, что передано в форме 
// дабы исключить взлом 
$_GET['name'] = str_replace("."," ",$_GET[name]); 
$_GET['name'] = str_replace("'"," ",$_GET[name]); 
$_GET['name'] = str_replace('"'," ",$_GET[name]); 
if(empty(
$_GET['name'])) 

  exit (
"Текстовое поле осталось не заполненным - введите слово для поиска"); 

// Открываем файл url.txt c реальными путями к фотографии 
$url file($filurl); 
// В цикле ищем вхождения 
foreach($photo_line as $lines

  
// Проверяем входит ли в состав строки искомое 
  // слово - если входит - запоминаем его номер. 
  
if(preg_match("|".$_GET['name']."|i"$lines)) 
  { 
    
$temp substr($lines,strpos($lines," ")); 
    
$temp trim($temp); 
    
$path substr($temp,0,strpos($temp," ")); 
    
$alt substr($temp,strpos($temp," ")); 
    
$photo_path[] = trim($url[substr($lines,0,strpos($lines," "))]).$path."|".$alt
  } 

// Выводим фотографии 
foreach($photo_path as $pathpd

  
// Отделяем описание от пути к файлу
  
list($pathp,$alt) = explode("|",$pathpd);
  
// Теперь разбиваем строку на директорию и файл 
  
$arr pathinfo($pathp); 
  
// Ссылка на исходную HTML-страницу 
  
echo "<a href=$arr[dirname]><IMG src=$arr[basename] width=779 height=106 border=0></a><br>"
  
// Описание, с выделением жирным найденных слов
  
echo str_replace($_GET['name'],"<b>$_GET[name]</b>",$alt)."<br>";
  unset(
$arr); 

?>

   
 
 автор: SS   (23.01.2005 в 03:34)   письмо автору
 
   для: cheops   (23.01.2005 в 02:45)
 

Все, работает! Спасибо огромное!
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/search7.htm

1. Как просканировать вглубь более одной папки? У нас в разделе ИСКУССТВО более 200 папок на 5-7 уровней.

Файл URL.TXT -

а) пишет все файлы подряд, какие только есть в папке. Нам ведь нужны только htm?

б) может быть, сделать так, чтобы у файлов URL и BASE были одинаковые номера (по образцу BASE), а то получается очень жесткая привязка номера строки URL.TXT к присвоенному ей соотвествующему номеру BASE.TXT. Удалить какую-то запись получается практически невозможно, - сразу же все поехало.

   
 
 автор: cheops   (23.01.2005 в 13:23)   письмо автору
 
   для: SS   (23.01.2005 в 03:34)
 

1) Хорошо сейчас постараюсь быстренько в рекурсию загнать этот скрипт.
a) В общем это не влияет, так как мы просто не используем эти номера, но можно убрать.
б) Пожалуй что да, нужно передлать (в таком формате запись можно удалить, но нужно оставлять пустую строку.)

   
 
 автор: cheops   (23.01.2005 в 14:15)   письмо автору
 
   для: SS   (23.01.2005 в 03:34)
 

Рекурсивное сканирование с корня виртуального хоста
<?php
  
// Считаем число строк в файле url.txt
  
$arr = array();
  
$url_text = array();
  
$arr file("url.txt");
  
// Помещаем индексы файла url.txt в новый массив
  
foreach($arr as $line)
  {
    list(
$temp) = explode(" "$line);
    
$url_text[] = $temp;
  }
  
// Выясняем максимальный индекс
  
if(!empty($url_text)) $i max($url_text) + 1;
  else 
$i 0;
  
// Открываем файл url.txt на запись
  
$fd fopen("url.txt","a");
  
// Открываем файл base.txt на запись
  
$fb fopen("base.txt","a");
  
// Начинаем спуск по дереву католов
  
scan_dir(".",$fd,$fb);
  
// Закрываем файл url.txt
  
fclose($fd);
  
// Закрываем файл base.txt
  
fclose($fb);
  
//////////////////////////////////////////////////////////
  // Рекурсивная функция - спускаемся вниз по Исскуству :)))
  //////////////////////////////////////////////////////////
  
function scan_dir($dirname,$fd,$fb)
  {
    
// Объявляем индекс $i глобальным, чтобы
    // его значение сохранялось после выхода
    // из функции
    
GLOBAL $i;
    
// Открываем текущую директорию
    
$dir opendir($dirname);
    
// Читаем в цикле директорию
    
while (($file readdir($dir)) !== false)
    {
      
// Если файл обрабатываем его содержимое
      
if($file != "." && $file != "..")
      {
        
// Если имеем дело с файлом - регистрируем его
        
if(is_file($dirname."/".$file))
        {
          
// Записываем имя файла в url.txt
          
fwrite($fd"$i $dirname/".$file."/\n");
          
// Получаем содержимое файла
          
$buffer file_get_contents($dirname."/".$file);
          
// Извлекаем пути к фотографиям
          
$patern "|<img[\s]*alt[^\"]*\"([^\"]*)\"[\s]*src[^\"]*\"([^\"]*)|i";
          
preg_match_all($patern$buffer$outPREG_SET_ORDER);
          if(isset(
$out[0]))
          {
            
$out[0][1] = str_replace("\r\n","",$out[0][1]);
            
$out[0][1] = str_replace("\n","",$out[0][1]);
            
fwrite($fb,"$i ".$out[0][2]." ".$out[0][1]."\n");
          }
          if(isset(
$out[1]))
          {
            
$out[1][1] = str_replace("\r\n","",$out[1][1]);
            
$out[1][1] = str_replace("\n","",$out[1][1]);
            
fwrite($fb,"$i ".$out[1][2]." ".$out[1][1]."\n");
          }
          
$i++;
        }
        
// Если перед нами директория, вызываем рекурсивно
        // функцию scan_dir
        
if(is_dir($dirname."/".$file))
        {
          
scan_dir($dirname."/".$file,$fd,$fb);
        }
      }
    }
    
// Закрываем директорию
    
closedir($dir);
  }
?>

Поиск (уточните пожалуйста где у вас изображения храняться - в той же директории? Этот скрипт расчитан на это предположение)
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
// Имя файла с путями к фотографиям и ключевыми словами 
$filename "base.txt"
$filurl "url.txt"
// Помещаем содержимое файла в массив $photo_line 
$photo_line file($filename); 
// Проверяем то, что передано в форме 
// дабы исключить взлом 
$_GET['name'] = str_replace("."," ",$_GET[name]); 
$_GET['name'] = str_replace("'"," ",$_GET[name]); 
$_GET['name'] = str_replace('"'," ",$_GET[name]); 
if(empty(
$_GET['name'])) 

  exit (
"Текстовое поле осталось не заполненным - введите слово для поиска"); 

// Открываем файл url.txt c реальными путями к фотографии 
$url_temp file($filurl); 
foreach(
$url_temp as $line)
{
  list(
$index,$value) = explode(" ",$line);
  
$url[$index] = $value;
}
// В цикле ищем вхождения 
foreach($photo_line as $lines

  
// Проверяем входит ли в состав строки искомое 
  // слово - если входит - запоминаем его номер. 
  
if(preg_match("|".$_GET['name']."|i"$lines)) 
  { 
    
$temp substr($lines,strpos($lines," ")); 
    
$temp trim($temp); 
    
$path substr($temp,0,strpos($temp," ")); 
    
$alt substr($temp,strpos($temp," ")); 
    
$photo_path[] = trim($url[substr($lines,0,strpos($lines," "))]).$path."|".$alt
  } 

// Выводим фотографии 
foreach($photo_path as $pathpd

  
// Отделяем описание от пути к файлу
  
list($pathp,$alt) = explode("|",$pathpd);
  
// Теперь разбиваем строку на директорию и файл 
  
$arr pathinfo($pathp); 
  
// Ссылка на исходную HTML-страницу 
  
echo "<a href=$arr[dirname]><IMG src=".$arr[dirname].$arr[basename]." width=779 height=106 border=0></a><br>"
  
// Описание, с выделением жирным найденных слов
  
echo str_replace($_GET['name'],"<b>$_GET[name]</b>",$alt)."<br>";
  unset(
$arr); 

?>

   
 
 автор: SS   (23.01.2005 в 15:06)   письмо автору
 
   для: cheops   (23.01.2005 в 14:15)
 

http://ancientrome.ru/art/artwork/sculp/search.htm

Сканирование работает хорошо, только так же пишет все файлы подряд.

Поиск - тоже все хорошо, кроме того, что добавляет к IMG SRC имя htm-файла (например,
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/livia/liv001.htmliv001-0.jpg
ВМЕСТО
http://ancientrome.ru/art/artwork/sculp/rom/imp/augustus/livia/liv001-0.jpg)

   
 
 автор: SS   (23.01.2005 в 15:11)   письмо автору
 
   для: cheops   (23.01.2005 в 02:20)
 

Да, совсем забыл!
Бывает и больше двух фотографий на одной html-странице.
Максимум - 5-6.
Что надо для этого дописать?

   
 
 автор: cheops   (23.01.2005 в 15:24)   письмо автору
 
   для: SS   (23.01.2005 в 15:11)
 

Так как тема уже длинная, обсуждать не удобно - давайте в другую перейдём

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1701

   
Rambler's Top100
вверх

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