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

Форум PHP

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

 

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

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

тема: SS, Поиск и вывод картинок
 
 автор: cheops   (23.01.2005 в 15:24)   письмо автору
 
 

Это продолжение темы http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1593

Поиск - тоже все хорошо, кроме того, что добавляет к 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)


Ага, есть такое дело - поправил

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


Давайте тогда в цикл загоним
<?php
          
for($j 0$j<6$j++) 
          {
            if(isset(
$out[$j]))
            {
              
$out[$j][1] = str_replace("\r\n","",$out[$j][1]);
              
$out[$j][1] = str_replace("\n","",$out[$j][1]);
              
fwrite($fb,"$i ".$out[$j][2]." ".$out[$j][1]."\n");
            }
          }
?>

Если число изображений увеличится - вместо 6 поставите нову цифру...

PS В аттаче новый вариант сканера и поиска.

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

Какой-то странный глюк:
в одной папке SCAN.PHP запустился и отработал на 5;
копирую файлы для поиска в другую папку, запускаю SCAN.PHP- запись произошла только в URL.TXT, в BASE.TXT никакими способами сделать запись не удается.

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

Там вообще ни одной записи нет, или он что-то пишет, что-то пропускает? С правами доступа к файлам всё нормально - не может файл быть закрыт на запись?

   
 
 автор: SS   (23.01.2005 в 18:55)   письмо автору
 
   для: cheops   (23.01.2005 в 18:08)
 

Права на файлы BASE, URL 777.
Запустите сами SCAN (http://ancientrome.ru/art/artwork/paint/scan.php)
Здесь - чистые файлы
BASE: http://ancientrome.ru/art/artwork/paint/base.txt
URL: http://ancientrome.ru/art/artwork/paint/url.txt

Тот же самый SCAN.PHP скульптуры перепахал изумительно, без претензий.

   
 
 автор: cheops   (23.01.2005 в 18:58)   письмо автору
 
   для: SS   (23.01.2005 в 18:55)
 

Хм... добавился один только файл 229.
А вы не можете меня направить на сбойный htm-файл, допустим ./etr/p0002.htm/ - это куда нужно идти?

   
 
 автор: cheops   (23.01.2005 в 19:06)   письмо автору
 
   для: cheops   (23.01.2005 в 18:58)
 

Всё добрался... сейчас попробую обработать эту ситуацию...

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

Попробуйте вот этим скриптом просканировать.

   
 
 автор: SS   (23.01.2005 в 19:40)   письмо автору
 
   для: cheops   (23.01.2005 в 19:09)
 

Этот скрипт выдает ошибку
Parse error: parse error, unexpected T_FOR in /home/ancientrome/html/art/artwork/paint/scan.php on line 56

Пробовал запустить из папки etr/ старый вариант SCAN'а - тот же результат, находит только один файл.

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

Ага поправил /*расчудесная ошибка какая была...*/

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

Результат тот же - см. ссылки на файлы SCAN, BASE, URL выше. Только теперь добавил ALT баннера.

   
 
 автор: cheops   (23.01.2005 в 23:48)   письмо автору
1.2 Кб
 
   для: SS   (23.01.2005 в 23:08)
 

Тогда, давайте следующий вариант попробуем...

   
 
 автор: SS   (24.01.2005 в 00:06)   письмо автору
 
   для: cheops   (23.01.2005 в 23:48)
 

ДА! УРА!
Последний штрих - игнорировать рисунки с подписью ИСТОРИЯ ДРЕВНЕГО РИМА и (а то баннер с каждой страницы срисовывает) или размеров 88х31 - как проще.

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

У баннера название наверное не меняется? Тогда его можно игнорировать примерно следующим образом:
<?php
          
if(isset($out[0]))
          {
            for(
$j 0$j<6$j++) 
            {
              if(isset(
$out[$j]))
              {
                
$out[$j][1] = str_replace("\r\n","",$out[$j][1]);
                
$out[$j][1] = str_replace("\n","",$out[$j][1]);
                if(
$out[$j][2] != "../../../../site/idr88-31b.GIF")
                
fwrite($fb,"$i ".$out[$j][2]." ".$out[$j][1]."\n");
              }
            }
          }
          else
          {
            
$patern "|<img[\s]*src[^\"]*\"([^\"]*)\"[^a]*alt[^\"]*\"([^\"]*)|i";
            
preg_match_all($patern$buffer$outPREG_SET_ORDER);
            
// Вместо 6 поставьте максимальное число изображений на
            // на странице
            
for($j 0$j<6$j++) 
            {
              if(isset(
$out[$j]))
              {
                
$out[$j][2] = str_replace("\r\n","",$out[$j][2]);
                
$out[$j][2] = str_replace("\n","",$out[$j][2]);
                if(
$out[$j][1] != "../../../../site/idr88-31b.GIF")
                
fwrite($fb,"$i ".$out[$j][1]." ".$out[$j][2]."\n");
             }
            }
          }
?>

   
 
 автор: SS   (24.01.2005 в 19:18)   письмо автору
 
   для: cheops   (24.01.2005 в 00:14)
 

Вот тебе и последний штрих :) Ляпнул, не подумав. Cheops, спасибо Вам за долготерпение! Но никак не могу пройти мимо некоторых досадных мелочей:

1. Если ALT пустой или = "ИСТОРИЯ ДРЕВНЕГО РИМА" - картинку индексировать не надо. Дело в том, что баннеры не только idr88x31b.GIF, есть и другие и сканер проиндексировал даже с idr88x31.GIF (он смотрит по относительному пути, но у каждого уровня свой относительный путь к файлу, в ту или другую сторону).

2. URL.XTX - не выводить другие файлы, кроме htm, html, php (простейший пример - у нас сейчас ок.1000 картинок, на каждую есть превьюшка и htm-документ, итого получается 1000*3=3000 файлов, из 2000 - ненужная информация.). Сейчас удалены вручную.

3. Сейчас страницы проиндексированы, приписываются ключевые слова для каждой картинки в теге примечаний, чтобы не выводились в результатах поиска, труд немалый, скажем, жалко потерять при переиндексации. И вручную вносить обновления - тоже не лучший вариант, особенно, если учесть, что загружает их несколько человек, - накладки неизбежны. Поправьте, пожалуйста, чтобы при повторной индексации проиндексированные картинки не индексировались, т.е. если есть такая картинка по такому адресу - то ничего не записываем, если нет - то прибавляем 1 к максимальному номеру ссылки в файле URL.TXT и делаем запись. Что-то в этом духе.

4. Возможность стоп-листа. Сейчас набираешь любой предлог или знак препинания - и поисковик рад стараться, выводя все страницы. Допишите, пожалуйста, чтобы перед началом поиска сначала проверить содержимое файла, напр., STOP.TXT и если там нет такого знака или слова, то тогда ищем, если есть - то ругаться.

   
 
 автор: cheops   (25.01.2005 в 00:34)   письмо автору
 
   для: SS   (24.01.2005 в 19:18)
 

1-3) Постарался учесть...
4) Это уже давайте завтра - подумать нужно... может здесь лучше регулярными выраженями... зачем психически здоровым людям искать точки и запятые... давайте ограничим поиск словами, число символов в которых не меньше 4 (это обычная практика).

   
 
 автор: SS   (25.01.2005 в 01:12)   письмо автору
 
   для: cheops   (25.01.2005 в 00:34)
 

Здесь специфика сайта не позволяет... Ключевое слово "Рим" состоит из 3-х букв, потом есть такая богиня Ио, а поскольку это раздел Античного искусства и страницы содержат также и информацию о дате, то будет не найти картинку по дате, поскольку в начале нашей эры дата могла состоять из двух или даже из одной цифры.
Смотря статистику текстовых поисковиков, диву даешься, что пытаются искать...

   
 
 автор: cheops   (25.01.2005 в 01:44)   письмо автору
 
   для: SS   (25.01.2005 в 01:12)
 

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

   
 
 автор: SS   (25.01.2005 в 02:28)   письмо автору
 
   для: cheops   (25.01.2005 в 01:44)
 

Если это возможно, то оставить их только для слов, работающих с датой:
в.
вв.
г.
гг.
н.
э.
нач.
кон.
сер.
ок.
Однако, я сейчас проверил - сейчас их поиск не находит, например, запрос "I в." или "I в. до н.э." не находит, хотя в BASE.TXT таких файлов полно.

   
 
 автор: SS   (25.01.2005 в 15:08)   письмо автору
 
   для: cheops   (25.01.2005 в 00:34)
 

Проверил новый scan - ничего не вносит ни в BASE ни в URL.

   
 
 автор: SS   (26.01.2005 в 03:57)   письмо автору
 
   для: SS   (25.01.2005 в 15:08)
 

Я имею ввиду - НЕ ВНОСИТ ВООБЩЕ НИЧЕГО, ни старых файлов, ни новых, ни в URL, ни в BASE.
Не уверен, но проверьте, пожалуйста, это место:

          $path_parts = pathinfo($file);
          if(!in_array($path_parts["extension"], $ext)) continue;
          // Проверяем файл на предмет повторной индексации - если
          // он уже проиндексирован - пропускаем цикл
          if(!in_array($dirname."/".$file, $url_alredy)) continue;
          // Записываем имя файла в url.txt
          fwrite($fd, "$i $dirname/".$file."/\n");

   
 
 автор: SS   (27.01.2005 в 22:07)   письмо автору
 
   для: SS   (26.01.2005 в 03:57)
 

Извиняюсь за навязчивость, но Вы не смотрели еще мой вопрос? Или не получается?

   
 
 автор: cheops   (28.01.2005 в 00:18)   письмо автору
 
   для: SS   (27.01.2005 в 22:07)
 

У нас уже опять длинная тема :))) - давайте переместимся в новую

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

   
 
 автор: cheops   (23.01.2005 в 19:01)   письмо автору
 
   для: SS   (23.01.2005 в 18:55)
 

Кстати, попробуйте его в etr запустить - что там? На худой конец rom можно и так добавить - там один файл по сути...

   
Rambler's Top100
вверх

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