Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> preg_match? парсинг и вывод списка ссылок? вывести список адресов изображений 
:(
    Опции темы
arashvg
Дата 7.2.2012, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 19.6.2009

Репутация: нет
Всего: нет



Есть страница, на ней от1 до 24 ссылки (точнее картинки), как мне выпарсить ссылки на все ети картинки и вывести их? 

пример кода хтмл

HTML
<div id='news-id-13199'><!--TBegin--><a href="http://sait.ru/uploads/posts/....../name-image.jpg" onclick="return hs.expand(this)" ><img align="left" src="http://sait.ru/uploads/posts/....../name-image.jpg" alt='Название' title='Название'  /></a><!--TEnd-->


Сейчас делаю так:
1. Регулярка:
Код

preg_match( '/<img align=\"left\" src=\"(.*?)\" alt=/is', $res, $poster);


если вывоить так echo $poster; выволит только 1 ссылку,

2. делал так:
Код
$poster= array();
preg_match( '/<img align=\"left\" src=\"(.*?)\" alt=/is', $res, $poster);
print_r($poster);


на странице отображается 1 изображение и надпись 
Array ( [0] => http://sait.ru/uploads/posts/....../name-image.jpg )

3. Код 
Код
for ($i = 1; $i $i<sizeof($poster[1]); $i++) 

 echo $poster[1][$i]." "; 
 echo '<br>';

дает ошибку 500...
Уже башка кипит :wall:
Помогите новичку!!!
PM MAIL WWW   Вверх
krundetz
Дата 7.2.2012, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



arashvg, посмотри на xpath


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
arashvg
Дата 7.2.2012, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 19.6.2009

Репутация: нет
Всего: нет



Цитата(krundetz @  7.2.2012,  15:06 Найти цитируемый пост)
arashvg, посмотри на xpath 

решение подсказали на другом форуме.
вместо preg_match нужно использовать preg_match_all
PM MAIL WWW   Вверх
krundetz
Дата 8.2.2012, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(arashvg @  7.2.2012,  15:24 Найти цитируемый пост)
решение подсказали на другом форуме.

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

так как ты создаешь свою реализацию, а не используешь то что есть в языке

перефразируя анекдот, тебе картинки или научиться программировать?

Это сообщение отредактировал(а) krundetz - 8.2.2012, 00:30


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 8.2.2012, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



arashvg, я сейчас пишу подобный плигин, который вытаскивает все картинки и заменяет их миниэскизами при нажатии на которые при помощи Fancybox "всплывает" полная картинка.. Так вот, могу сказать что у тебя код не будет работать. Вернее будет при условии что все картинки у тебя внесены по шаблону smile
Что у тебя выведет регулярка если выравнивание будет задано не через align, или например, его вообще нет, или другой порядок свойств? smile

Сейчас доберусь ко своего компа и выложу свои наработки, вдруг пригодятся ;)


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 8.2.2012, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



вот привожу маленький фрагмент своего кода обработки картинки

Код

$row_text - HTML-страница с картинками

// получаем все картинки
$regex = '#<img[^>]*src=(["\'])([^"\']*)\1[^>]*>#';
preg_match_all($regex, $row_text, $img_text);

// проверяем есть ли картинки вообще
if (count($img_text[0])) {
    foreach ($img_text[0] as $img_item) {
        
        // получаем адрес картинки
        preg_match('#src=(["\'])(.*?)\\1#i', $img_item, $temp);
        $attrib['src'] = $temp[2];
        $temp = null;
        
        // получаем альтернативный текст
        preg_match('#alt=(["\'])(.*?)\\1#i', $img_item, $temp);
        $attrib['alt'] = (isset($temp[2])) ? trim($temp[2]) : '';
        $temp = null;
        
        // получаем заголовок
        preg_match('#title=(["\'])(.*?)\\1#i', $img_item, $temp);
        $attrib['title'] = (isset($temp[2])) ? trim($temp[2]) : '';
        $temp = null;

        // получаем выравнивание
        preg_match('#align=(["\'])(.*?)\\1#i', $img_item, $temp);
        $attrib['align'] = (isset($temp[2])) ? trim($temp[2]) : '';
        $temp = null;

        // получаем стилевое форматирование
        preg_match('#style=(["\'])(.*?)\\1#i', $img_item, $temp);
        $attrib['style'] = (isset($temp[2])) ? trim($temp[2]) : '';
        $temp = null;

        // получаем выравнивание из стиля 
        preg_match('#float:([a-zA-Z]+)#i', $attrib['style'], $temp);
        $attrib['float'] = (isset($temp[1])) ? trim($temp[1]) : '';
        if($attrib['float'] != ''){
            $attrib['float'] = $attrib['float'];
        }elseif($attrib['align'] != ''){
            $attrib['float'] = $attrib['align'];
        }else{
            $attrib['float'] = 'left';
        }
                
                 // ну и так далее...
    }
}



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
$дмитрий
Дата 8.2.2012, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



А оно сработает?
Код

#<img[^>]*src=(["\'])([^"\']*)\1[^>]*>#

PM MAIL   Вверх
Gold Dragon
Дата 8.2.2012, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата($дмитрий @  8.2.2012,  09:07 Найти цитируемый пост)
А оно сработает?
я не в курсе  smile 
Но у меня работает и достаточно стабильно



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0980 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.