preg_match_all проблемы - PullRequest
1 голос
/ 12 мая 2010

Я использую preg_match_all и мне нужно собрать все теги href = "" в моем коде, но я не совсем понимаю, как это работает.

У меня есть это рег. эксп. (/(<([\w]+)[^>]>)(.?)(</\2>)/) его взять все HTML-коды, мне нужны только все теги href.

я могу обратиться за помощью:)

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Я не фанат парсинга HTML с RegExp, но все равно:

$input_string = file_get_contents(
    "/1561861/pregmatchall-problemy"
);

preg_match_all(
    '@\\<a\\b[^\\>]+\\bhref\\s*=\\s*"([^"]*)"[^\\>]*\\>@i',
    $input_string,
    $matches
);

var_dump( $matches ); // inspect for useful information

Ожидается, что все hrefs заключены в ". Иначе работать не будет.

0 голосов
/ 12 мая 2010
<?
$html = '<a href="http://something.com" target="_blank">Test </a>';
if (preg_match('/href="([^"]*)"/i', $html , $regs))
{
   $result = $regs[1];
} else {
   $result = "No URL Found";
}
echo $result ;
?>
...