С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
anatolii_st

Поиск картинок по сайтам

14.12.2011, 12:49. Показов 3570. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дали на лаб. задание:
Создать систему для поиска картинок по сайту, используя PHP+MySQL.

В БД должны присутствовать две отдельные таблицы - список картинок (по которому и должен производится поиск) и список ссылок на страницы (которые нужно проиндексировать).
Индексацией должен заниматься отдельный скрипт, который при каждом запуске индексирует следующую страницу из списка ссылок, собирая новые картинки и новые ссылки.
Учитывая отсутствие "cron", запуск скрипта производить вручную, набрав адрес в браузере и нажимая клавишу F5.

Требования:
-в поисковой строке учитывать только: русские и латинские символы, цифры, пробелы (игнорировать множественные пробелы). Остальные символы должны игнорироваться!
-поиск должен производится по точному совпадению искомой подстроки в атрибуте ALT тега IMG.
-результат поиска (выводить постранично) должен содержать список найденных картинок в исходном размере, у каждой картинки должны присутствовать: ссылка на страницу (на которой была найдена картинка), текст атрибута ALT с выделением поисковой строки.
Помогите начинающему программисту

Добавлено через 1 час 3 минуты
в интернете нашел скрипт с регулярным выражением "Получение всех картинок из HTML-документа",
но он отказывается работать и выдает ошибку на строку с preg_match_all
(Parse error: syntax error, unexpected '[' in Z:\home\test3.ru\www\index.php on line 2):

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$images = array();
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);
unset($data);
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);
foreach($data as $url)
{
    $info = pathinfo($url);
    if (isset($info['extension']))
    {
        if (($info['extension'] == 'jpg') ||
        ($info['extension'] == 'jpeg') ||
        ($info['extension'] == 'gif') ||
        ($info['extension'] == 'png'))
        array_push($images, $url);
    }
}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2011, 12:49
Ответы с готовыми решениями:

Как осуществляют поиск по сайтам поисковики?
Как осуществляют поиск по сайтам поисковики? По title ищет, или в заголовках, или в самом тексте статьи?

Поиск по сайтам
Как реализовать поиск по сайтам? Есть например 17 сайтов городка, как их проиндексировать и реализовать поиск по ним ? Что то типа мини...

Поиск по определенным сайтам
В общем есть сайт http://usaforyou.ru/. В нем есть поисковик по сайту. Я так понимаю он организован на JavaScript. Если ошибаюсь то...

2
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
14.12.2011, 13:07
вот тутут слешики забыли
Цитата Сообщение от anatolii_st Посмотреть сообщение
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);
PHP
1
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $data, $media);
и здесь
Цитата Сообщение от anatolii_st Посмотреть сообщение
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);
PHP
1
$data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);
Добавлено через 1 минуту
anatolii_st, не совсем понятно, те надо искать по БД или по html-дереву? Если по html, то тут лучше подойдет js
0
anatolii_st
14.12.2011, 14:01
спасибо за совет, ошибка исчезла, но появилась новая Warning: Invalid argument supplied for foreach() in Z:\home\test3.ru\www\index.php on line 16
Т.е. неправильный аргумент передан в foreach()

может быть я не правильно заношу html код в $data?
HTML5
1
2
3
4
5
6
7
8
9
$data ='<html>
<head> </head>
<body>
<img src="1.jpg">
<br>
<img src="2.jpg">
</body>
</html>
';
(непосредственно поиск картинок будет по БД в таблице images на основе того, что лежит в alt="", но для начала нужно как-то проиндексировать сайт на картинки и поместить их в базу, в этом вся загвостка)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2011, 14:01
Помогаю со студенческими работами здесь

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

Поиск по нескольким сайтам одновременно
Добрый день! Передо мной поставлена такая задача: Нужно осуществлять поиск запчастей по нескольким сайтам ( 15 сайтов, не больше) и...

не работают сервисы Google, нет доступа к сайтам антивирусов и еще неоторым сайтам
не работают сервисы Гугл: Гмайл, Переводчик, карты и т.п., хотя сам аккаунт доступен, и поиск в гугле работает Также нет доступа к сайтам...

Поиск по сайтам самых дешевых продуктов
Есть где то 10-15 сайтов на которых продают разные продукты. Нужно по вводным параметрам(4-7) найти 5 самых дешёвых. Brainstorming!! ...

Я переделал поиск картинок
~X( Все мои линки пропали, а был по 2 запросам на первой странице... Есть у кого инфа по этому поводу?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru