$pattern = '#<img[^>]*src=\"(.*)\"[^>]*/>#isU';Возвращает кучу разного хлама.
$pattern = '#<img[^>]*src="([^"]*)"[^>]*/>#isU';
Возвращает то, что нужно но в ограниченном количестве :angry:
Спустя 3 минуты, 3 секунды (24.02.2012 - 16:10) m4a1fox написал(а):
RCuPeR
Извини, но ты регулярки уже месяца 3 мурыжишь... все ни как не поддаются? Давай строку (исходник), и что нужно получить на выходе?
Извини, но ты регулярки уже месяца 3 мурыжишь... все ни как не поддаются? Давай строку (исходник), и что нужно получить на выходе?
Спустя 14 минут, 8 секунд (24.02.2012 - 16:24) RCuPeR написал(а):
Я тебе скажу больше, уже, наверное год их "мурыжу" Никак не дойдет...(
Строка:
получить путь изображения из тега <img>; не учитывать любые атрибуты.
Строка:
получить путь изображения из тега <img>; не учитывать любые атрибуты.
Спустя 4 минуты, 56 секунд (24.02.2012 - 16:29) RCuPeR написал(а):
$pattern = '#<img.*?src *= *(\'|")(.*?)\\1.*?>#';
Подошел. Упростить нельзя ?
Спустя 8 минут, 43 секунды (24.02.2012 - 16:37) m4a1fox написал(а):
RCuPeR
Цитата |
Подошел. Упростить нельзя ? |
Сам написал?
Спустя 2 минуты, 5 секунд (24.02.2012 - 16:39) RCuPeR написал(а):
Не, сопоставил несколько готовых.
Такой вот вопрос:
например, я хочу спарсить title нашего форума, но кодировка форума charset=windows-1251. Соответственно, регулярка типа '#<title>([^\<]*)</title>#isU' возвращает "Ôîðóì PHP ïðîãðàììèñòîâ". Как быть ?
Такой вот вопрос:
например, я хочу спарсить title нашего форума, но кодировка форума charset=windows-1251. Соответственно, регулярка типа '#<title>([^\<]*)</title>#isU' возвращает "Ôîðóì PHP ïðîãðàììèñòîâ". Как быть ?
Спустя 2 минуты, 4 секунды (24.02.2012 - 16:41) m4a1fox написал(а):
iconv в помощь.
Спустя 8 минут, 49 секунд (24.02.2012 - 16:50) m4a1fox написал(а):
RCuPeR
И все таки.... дай строчку где находишь src... мне интересно стало!
И все таки.... дай строчку где находишь src... мне интересно стало!
Спустя 20 минут, 45 секунд (24.02.2012 - 17:11) m4a1fox написал(а):
Так как я не дождался ответа от тебя...то. К примеру, есть
вытаскивает регуляркой
Или так
-----------------------------------------------------------------------------------------
<img title="img" alt="img" src="img/uHOFc02hrd.png" />
вытаскивает регуляркой
$img = '<img title="img" alt="img" src="img/uHOFc02hrd.png" >';
$patern = '#<img\s([a-zA-Z]*).*src="([a-zA-Z].*)"\s>#s';
preg_match($patern, $img, $r);
echo '<pre>';
print_r($r);
echo '</pre>';
Или так
-----------------------------------------------------------------------------------------
$img = '<img title="img" alt="img" src="http://www.sandbox.com/img/uHOFc02hrd.png" />';
$patern = '#<img\s[a-zA-Z]*.*src="([a-zA-Z].*)"\s/>#';
preg_match($patern, $img, $r);
echo '<pre>';
print_r($r);
echo '</pre>';
Спустя 6 минут, 42 секунды (24.02.2012 - 17:18) RCuPeR написал(а):
iconv("windows-1251", "UTF-8", $matches[1]);
Вообще бред вывел.
Да любой <img> :) Например:
<img src="/_Images/titles/search.gif" width="32" height="8" alt="Поиск" title="Поиск" align="absmiddle">
Спустя 47 секунд (24.02.2012 - 17:19) RCuPeR написал(а):
Как ты уже заметил, я не гуру, но мне кажется, твоя регулярка чуть сложнее чем эта:
$pattern = '#<img.*?src *= *(\'|")(.*?)\\1.*?>#';
Спустя 7 минут, 28 секунд (24.02.2012 - 17:26) m4a1fox написал(а):
RCuPeR
Не, я ж не настаиваю. Откровенно, твою я прочитать словами не могу
Не, я ж не настаиваю. Откровенно, твою я прочитать словами не могу
Спустя 1 минута, 34 секунды (24.02.2012 - 17:28) RCuPeR написал(а):
Аналогично
Главное, что работает.
А вот теперь беда с кодировкой
Главное, что работает.
А вот теперь беда с кодировкой
Спустя 6 минут, 58 секунд (24.02.2012 - 17:35) m4a1fox написал(а):
RCuPeR
Цитата |
А вот теперь беда с кодировкой |
А что выводит?
Цитата |
Аналогично |
Так не пойдет! Надо разбираться!
Спустя 4 минуты, 32 секунды (24.02.2012 - 17:39) m4a1fox написал(а):
Winston не подсказывай пока что....
Спустя 6 минут, 17 секунд (24.02.2012 - 17:45) Winston написал(а):
Цитата |
Winston не подсказывай пока что.... |
Почему?
Спустя 33 минуты, 39 секунд (24.02.2012 - 18:19) Winston написал(а):
RCuPeR
У нас форум в кодировке windows-1251, потому для того, чтобы у тебя корректно отображалось все, что ты спарсишь у тебя файл тоже должен быть в этой кодировке
Вот парсинг src картинок
А вот так можно тайтл спарсить
У нас форум в кодировке windows-1251, потому для того, чтобы у тебя корректно отображалось все, что ты спарсишь у тебя файл тоже должен быть в этой кодировке
Вот парсинг src картинок
$page = file_get_contents('http://phpforum.ru');
preg_match_all('#<img.*src=(?:\'|")(.*)(?:\'|")[^>]*>#isU', $page, $match);
echo '<pre>'.htmlspecialchars(print_r($match[1], 1)).'</pre>';
А вот так можно тайтл спарсить
preg_match('#<title>(?<title>.*)</title>#isU', $page, $match);
echo $match['title'];
Спустя 21 минута, 1 секунда (24.02.2012 - 18:40) nugle написал(а):
Winston
а что значит во второй регулярки( про тайтл), такая конструкция (?
а что значит во второй регулярки( про тайтл), такая конструкция (?
Спустя 1 час, 33 минуты, 4 секунды (24.02.2012 - 20:13) Winston написал(а):
nugle
Это именованная группировка, если ее применить то в выходном массиве будет ассоциативный ключ.
Есть такие варианты записи
(?<indexName>.*) Или (?P<indexName>.*), но эту возможно лучше всего использовать когда выходящий массив будет не большой, т.к. добавляется еще одна копия элемента, только с ассоциативным индексом.
Если распечатать массив, то можно увидеть
Как видно создается еще одна копия элемента массива, потому еще раз повторю, при больших выходных массивах, именованную группировку лучше не использовать.
Это именованная группировка, если ее применить то в выходном массиве будет ассоциативный ключ.
Есть такие варианты записи
(?<indexName>.*) Или (?P<indexName>.*), но эту возможно лучше всего использовать когда выходящий массив будет не большой, т.к. добавляется еще одна копия элемента, только с ассоциативным индексом.
Если распечатать массив, то можно увидеть
Array
(
[0] => <title>Форум PHP программистов</title>
[title] => Форум PHP программистов
[1] => Форум PHP программистов
)
Как видно создается еще одна копия элемента массива, потому еще раз повторю, при больших выходных массивах, именованную группировку лучше не использовать.
Спустя 27 минут, 14 секунд (24.02.2012 - 20:40) nugle написал(а):
Winston
понял, спасибо)
понял, спасибо)
_____________
Гнусный социопат с комплексом Бога.