Извлечь параметр из URL с помощью регулярного выражения в PHP - PullRequest
0 голосов
/ 29 сентября 2010

У меня есть несколько ссылок, которые выглядят следующим образом:

<a href="http://url.com/?foo=bar&p=20" title="foo">Foo</a>
<a href="http://url2.com/?foo=bar&p=30" title="foo">Foo</a>

Я пытаюсь извлечь параметр p из каждого найденного href.Так что в этом случае у меня есть массив конечных результатов как array (20, 30).

Что было бы хорошим регулярным выражением для этого?Спасибо.

1 Ответ

8 голосов
/ 29 сентября 2010

Не пытайтесь анализировать HTML с помощью регулярных выражений;используйте вместо этого HTML-анализатор, такой как PHP DOM-библиотека или PHP Simple HTML DOM Parser .Затем проанализируйте URL-адрес с помощью parse_url и строку запроса с помощью parse_str.

. Вот пример:

$html = str_get_html('…');
$p = array();
foreach ($html->find('a[href]') as $a) {
    parse_str(parse_url($a->getAttribute('href'), PHP_URL_QUERY), $args);
    if (isset($args['p'])) $p[] = $args['p'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...