获取href值的内容

mis*_*eka -1 php href

我需要使用正则表达式来捕获href的内容.例如,当我将规则应用于href ="www.google.com"时,我想获得www.google.com.另外,我想忽略所有只有#值的href.

现在,我正在玩一段时间,我想出了这个:

href=(?:\"|\')((?:[^#]|.#.|.#|#.)+)(?:\"|\')
Run Code Online (Sandbox Code Playgroud)

当我在http://www.rubular.com/中尝试它时,它就像一个魅力,但我需要在PHP中使用它与preg_replace_callback,并且我没有得到预期的结果(用于在PHP中测试它,我正在使用这个网站:http://www.pagecolumn.com/tool/pregtest.htm).

我的错在哪里?

Lin*_*een 9

由于使用正则表达式解析HTML是Bad Thing™,我建议使用一种不那么粗糙的方法:

$dom = new DomDocument;
$dom->loadHTML($pageContent);

$elements = $dom->getElementsByTagName('a');

for ($n = 0; $n < $elements->length; $n++) {
    $item = $elements->item($n);
    $href = $item->getAttribute('href');
    // here's your href attribute
}
Run Code Online (Sandbox Code Playgroud)