php不用正则表达式获取文章A标签链接的方法
2013-03-27 09:07
691 查看
php不用正则表达式获取文章A标签链接的方法
DOM获取链接
不要使用正则表达式解析的HTML
也许最大的错误时,人们作出尝试从一个网页的网址或链接文字中试图做到这一点使用正则表达式。这项工作可以做正则表达式,但是,有一个拥有整个文件妊娠多次循环的高开销。正确的方法和速度更快,无限冷却器方法是使用DOM。
通过使用getLinks职能的DOM,可以简单地创建一个包含所有环节上的键网页,并链接作为值名称。此数组然后可以在循环数组一样创建一个列表,在任何需要的方式操纵或。
请注意,抑制错误时使用加载HTML。这是为了抑制有关无效的HTML在DOCTYPE没有定义实体的警告。当然,在生产环境中,错误报告将被禁用错误报告设置为无。
类似的方法可以是使用XPath将达到同样的结果。无论哪种方式,使用DOM将会证明远远超过一般运算效率。
实例
DOM获取链接
不要使用正则表达式解析的HTML
也许最大的错误时,人们作出尝试从一个网页的网址或链接文字中试图做到这一点使用正则表达式。这项工作可以做正则表达式,但是,有一个拥有整个文件妊娠多次循环的高开销。正确的方法和速度更快,无限冷却器方法是使用DOM。
通过使用getLinks职能的DOM,可以简单地创建一个包含所有环节上的键网页,并链接作为值名称。此数组然后可以在循环数组一样创建一个列表,在任何需要的方式操纵或。
请注意,抑制错误时使用加载HTML。这是为了抑制有关无效的HTML在DOCTYPE没有定义实体的警告。当然,在生产环境中,错误报告将被禁用错误报告设置为无。
<?php function getLinks($link) { /*** return array ***/ $ret = array(); /*** a new dom object ***/ $dom = new domDocument; /*** get the HTML (suppress errors) ***/ @$dom->loadHTML(file_get_contents($link)); /*** remove silly white space ***/ $dom->preserveWhiteSpace = false; /*** get the links from the HTML ***/ $links = $dom->getElementsByTagName('a'); /*** loop over the links ***/ foreach ($links as $tag) { $ret[$tag->getAttribute('href')] = $tag->childNodes->item(0)->nodeValue; } return $ret; } ?>
类似的方法可以是使用XPath将达到同样的结果。无论哪种方式,使用DOM将会证明远远超过一般运算效率。
实例
<?php /*** a link to search ***/ $link = ""; /*** get the links ***/ $urls = getLinks($link); /*** check for results ***/ if(sizeof($urls) > 0) { foreach($urls as $key=>$value) { echo $key . ' - '. $value . '<br >'; } } else { echo "No links found at $link"; } ?>
相关文章推荐
- PHP正则表达式抓取某个标签的特定属性值的方法
- Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法(本文由169it.com搜集整理)
- php使用正则表达式获取图片url的方法
- C#基于正则表达式抓取a标签链接和innerhtml的方法
- PHP正则获取A标签的链接地址
- java正则表达式获取指定HTML标签的指定属性值且替换的方法
- php正则表达式获取内容所有链接
- php获取超链接文本内容的正则表达式(五种方法)
- php获取超链接文本内容的正则表达式(五种方法)
- javascript正则表达式和php匹配 获取文章的 图片集
- php正则表达式取得内容所有链接的方法
- PHP正则表达式抓取某个标签的特定属性值的方法
- PHP正则表达式匹配嵌套HTML标签的方法和技巧
- PHP正则表达式匹配嵌套HTML标签的方法和技巧
- Java基于正则表达式获取指定HTML标签指定属性值的方法
- 获取a标签的href中的链接php正则
- php正则表达式获取内容所有链接
- php正则表达式取得内容所有链接的方法
- Java使用正则表达式匹配获取链接地址的方法示例