【问题标题】:extract all <a> tags from content从内容中提取所有 <a> 标签
【发布时间】:2011-09-27 23:24:45
【问题描述】:

我想提取一些页面内的所有链接,并在一个块中显示它们的链接文本。我试过正则表达式,但它没有得到正确的结果,因为标签没有修复模式,它们有各种属性。我使用 PHP。

我该怎么做?

【问题讨论】:

  • 你确实想为此使用正则表达式。

标签: php html


【解决方案1】:

DOMDocument::loadHTML

喜欢:

$doc = new DOMDocument();
$doc->loadHTML($string);
foreach($doc->getElementsByTagName('a') as $a) {
    // do something with $a->textContent
} 

【讨论】:

  • 谢谢你。我将它添加到我的代码中并得到这个错误::致命错误:DOMElement 类的对象无法转换为字符串
  • 你传递给 loadHTML 函数的是什么? $string 需要是 html 的内容
  • 它是 html。问题是我确实回显了 $a 而不是 $a->textContent。
  • 我也需要 href 值。如何获得?
【解决方案2】:

【讨论】:

    【解决方案3】:

    您可以尝试使用PHP:DOMDocument::getElementsByTagName 获取指定的标签。这是一个例子:

    内页.html

    <a href="#">link1</a>
    <a href="#">link2</a>
    <a href="#">link3</a>
    

    这是你的 PHP 代码:

    <?php 
    
    $src = new DOMDocument('1.0', 'utf-8');
    $src->formatOutput = true;
    $src->preserveWhiteSpace = false;
    $src->load('page.html');
    
    $links = $src->getElementsByTagName('a');
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多