X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как извлекать ссылки, используя их часть как признак?
slava34
slava34
Topic Starter сообщение 16.2.2012, 12:12; Ответить: slava34
Сообщение #1


Через регулярку, но надо, что бы она была универсальная т.е. подставил признак - получил первый url содержащий этот признак.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 16.2.2012, 14:17; Ответить: Witu
Сообщение #2


http://php.net/manual/ru/function.preg-match.php
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%...%BD%D0%B8%D1%8F

думаю поможет
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pavelsc
pavelsc
сообщение 16.2.2012, 15:06; Ответить: pavelsc
Сообщение #3


(HTMLandPHP @ 14.2.2012, 18:36) *
через регулярные выражения

Вы издеваетесь? Ну-ну парсить html регекспами. Для вас даже тема в инете есть что так не надо делать.

html agility pack если под visual studio, или phpQuery если под пхп надо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
slava34
slava34
Topic Starter сообщение 28.2.2012, 12:45; Ответить: slava34
Сообщение #4


(HTMLandPHP @ 16.2.2012, 17:17) *


Возьметесь написать вышеуказанный скриптик?
Если да то примерно за сколько?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 29.2.2012, 0:25; Ответить: ZhukV
Сообщение #5


(pavelsc @ 16.2.2012, 18:06) *
Вы издеваетесь? Ну-ну парсить html регекспами. Для вас даже тема в инете есть что так не надо делать.

html agility pack если под visual studio, или phpQuery если под пхп надо.


Ну вообще то здесь вопрос задали, и не нужно сразу так похамливать....



slava34, есть несколько вариантов.
Как для новичка, можете попробовать регулярки, они все же проще но со глюками.
Если же нормально делать, я бы взял DOMDocument & DOMXpath

Предположем, что у $dom у вас загружен корректно документ (о глюках и их исправлениях - http://api.drupal.org/api/drupal/modules%2...lter_dom_load/7)
Знайте, что лучше кидать UTF-8
А делее через XPath обращаемся к тем данным которые нужно:
[PHP]
$xpath = new DOMXPath($dom);

$links = $xpath->query('//a');
$now = 0;
while ($link = $links->item($now)) {
$now++;
print $link->getAttribute('href');
}
[/PHP]

или же на чистом доме

[PHP]$links = $dom->getElementsByTagName('a');
foreach ($links as $link) {
print $link->getAttribute('href');
}[/PHP]

Лучше всего использовать XPath, так как у него очень сильный функционал.

Писал код с фанаря, могут быть очепятки.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 29.2.2012, 7:59; Ответить: Witu
Сообщение #6


pavelsc, вот допустим есть много ссылок на странице примерно такого вида

http://google.com/web/projects/{уникальный_id}
http://google.com/web/projects/show/changelog
http://google.com/web/projects/{уникальный_id}/changelog

и мы хотим вытащить все ссылки в которых есть /projects/{уникальный_id}/changelog

как вы это сделаете без регулярки?
может быть через for от 0 до 999999999 и проверят strpos'ом?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
slava34
slava34
Topic Starter сообщение 2.3.2012, 9:40; Ответить: slava34
Сообщение #7


(ZhukV @ 29.2.2012, 03:25) *
Ну вообще то здесь вопрос задали, и не нужно сразу так похамливать....



slava34, есть несколько вариантов.
Как для новичка, можете попробовать регулярки, они все же проще но со глюками.
Если же нормально делать, я бы взял DOMDocument & DOMXpath


Большое спасибо, для меня больше подходят регулярки, так как работаю с Xedant Human Emulator, он их хорошо понимает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Den1xxx
Den1xxx
сообщение 2.3.2012, 12:01; Ответить: Den1xxx
Сообщение #8


(pavelsc @ 16.2.2012, 18:06) *
Для вас даже тема в инете есть что так не надо делать.

С каких пор то, что неизвестно кто написал в интернете, стало автоматически аксиомой?
Разбирайте лучше конкретный случай: допустим, в этом случае лучше не писать регулярки. И почему.
А то вот мне например непонятно почему — он ведь пытается анализироватьтеги a имеющие определенные признаки допустим href
Их можно парсить регуляркой, имхо. Поисковики и браузеры же как-то парсят.

А то скатываесь до безосновательных холиваров: «Только Виндовсом нужно пользоваться!» или «Блочная верстка должна использоваться в любом случае!».
Смешно.

Зы. По ссылке pavelsc нашлась замечательная фраза:
Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp.
Ха-ха. Как они оказывается боятся русских хакеров.

Вообще судя по тому что написано ниже, человек просто болен. Психически. Ну или косит под больного.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 2.3.2012, 12:26; Ответить: alexdrob
Сообщение #9


(Den1xxx @ 2.3.2012, 15:01) *
С каких пор то, что неизвестно кто написал в интернете, стало автоматически аксиомой?

То есть вы должны официально признать высказывание что бы оно стало аксиомой?
И при чём тут вообще аксиома?
(pavelsc @ 16.2.2012, 18:06) *
что так не надо делать.

Это не аксиома а совет.

(Den1xxx @ 2.3.2012, 15:01) *
Разбирайте лучше конкретный случай: допустим, в этом случае лучше не писать регулярки.

А он не то же самое сказал?

(Den1xxx @ 2.3.2012, 15:01) *
А то скатываесь до безосновательных холиваров: «Только Виндовсом нужно пользоваться!» или «Блочная верстка должна использоваться в любом случае!».

Странно, если я делаю сервер игры - я выбираю линукс, если дома для просмотра фильмов и что бы можно было поиграть - я ставлю виндовс.
Теперь смотрим данную тему: если нужно получить значение атрибута - то используем DOM.
Где тут утверждение что вообще не нужно использовать регулярки в других случаях?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Den1xxx
Den1xxx
сообщение 2.3.2012, 12:34; Ответить: Den1xxx
Сообщение #10


alexdrob, перечитайте еще раз, а то пишете абы что.
[B]pavelsc [/B]сказал, что html вообще нельзя парсить регуляркой , потому что вот здесь есть ссылка.
Так вот, это неправда. Html можно парсить регуляркой.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Как перестать толстеть?
231 DocAnton64 22673 Сегодня, 22:05
автор: Latinos
Горячая тема (нет новых ответов) Как и где отдыхать весной-летом 2021?
35 uahomka 615 Вчера, 23:55
автор: VinogradOFF
Горячая тема (нет новых ответов) Статейные ссылки. Ручное размещение. Средний тИЦ - 500+
85 creatos 16105 19.4.2021, 16:15
автор: creatos
Открытая тема (нет новых ответов) Как в Wordpress центрировать изображение по умолчанию?
6 SkyFire 1719 18.4.2021, 0:55
автор: kvsgeek
Открытая тема (нет новых ответов) Хочу встать на учет как самозанятый
Какие там нюансы и подводные камни?
12 PostBrigada 410 17.4.2021, 20:47
автор: JOHNY


 



RSS Текстовая версия Сейчас: 21.4.2021, 22:06
Дизайн