Php函数从字符串中提取超链接

时间:2017-11-03 09:13:25

标签: php hyperlink extract

我需要从html字符串中提取链接的功能。 例如:

字符串:

http://www.link.com

需要提取:

$http.delete

THX

2 个答案:

答案 0 :(得分:0)

$string = "<!-- BEGIN PARTNER PROGRAM - DO NOT CHANGE THE PARAMETERS OF THE HYPERLINK -
-> <a href='http://www.link.com' target='_blank'>text</a> <img 
src='http://www.linkimage.com' BORDER='0' WIDTH='1' HEIGHT='1' /> <!-- END 
PARTNER PROGRAM --> ";

    $link = explode('<a href=\'', $string)[1];
    $link = explode('\'',$link)[0];
    echo $link;

    $linkimage = explode('src=\'', $string)[1];
    $linkimage = explode('\'',$linkimage)[0];
    echo $linkimage;

答案 1 :(得分:0)

快速的肮脏方式:

preg_match_all('~href=([\'"])([^\'"]+)\\1~is', $htmlString, $matches); 

print_r($matches[2]);

正确的方式:

http://php.net/manual/en/domdocument.getelementsbytagname.php / http://php.net/manual/en/simplexmlelement.xpath.php等等..

正确方法的问题是你需要在解析之前整理html。在某些情况下,即使是php native http://php.net/manual/en/book.tidy.php也无法正确执行此操作。