Extract links from content

时间:2018-10-01 作者:user2882154

我正在寻找一种解决方案,只在我的单个页面上显示字符串(我的所见即所得内容)内的链接。

首先,提取所有我的链接,并用links title属性替换每个链接的内容。

以下是我的内容的示例:

<p>Iriaequam igit adhuidie eo, condam ciorteli pripsenit Catu quam nos, sediess ilint. Scipios alabi 
    <a title="link title 1" href="http://www.google.com" target="_blank" rel="1 noopener">incepopori</a> 
    senatifec iam pra re hoc, caet? Bus viritid 
    <a title="Link title 2" href="http://www.facebook.com" target="_blank" rel="2 noopener">epectam</a> 
    etorum imus revilla dit fore tem. Quam fugitas sitius coribusciam, voluptam alique velibus ut dit earum simodia quo conseque vit, cusa core pro odictur aut hilitatquat et atur amet et veliquatur. Ici aceruptae es.
</p>
下面是我想在页面上展示的内容:

<a href="http://www.google.com" target="_blank" rel="1">link title 1</a>
<a href="http://www.facebook.com" target="_blank" rel="2">link title 2</a>
以下是我迄今为止所做的尝试:

<?php 

$post_content = get_the_content();

preg_match_all(\'/href="(.*?)"/s\', $post_content, $matches);

$count = count($matches[1]);

for ($row = 0; $row < $count ; $row++) {

    echo "<a href=".$matches[1]["$row"]." target=\'_blank\' rel=\'link rel\'>link title</a><br />";

}

?>
我得到的是:

<a href="http://www.google.com" target="_blank" rel="link rel">link title</a><br>
<a href="http://www.facebook.com" target="_blank" rel="link rel">link title</a>
我的问题是,我找不到一种方法来获取rel属性,并用title属性替换链接内容。

有什么想法吗?

谢谢你的帮助

1 个回复
SO网友:rony2k6

我认为正则表达式搜索可能变得至关重要,因此html dom解析器可能会有所帮助。请参阅下面的代码(如果有帮助):

<?php

$post_content = get_the_content();
$dom = new DomDocument();
$dom->loadHTML($post_content);
foreach ($dom->getElementsByTagName(\'a\') as $item) {
   echo "<a href=".$item->getAttribute(\'href\')." target=\'_blank\' rel=\'". $item->getAttribute(\'rel\') ."\'>". $item->getAttribute(\'title\') ."</a><br />";
}

?>

结束