我需要从html字符串中提取链接的功能。 例如:
字符串:
http://www.link.com
需要提取:
$http.delete
THX
答案 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也无法正确执行此操作。