2017-06-09 13 views
1

thisを使用して問題を解決しようとしました。この方法でテキストをテキストリンクに置き換えたいと思います。DOMDocumentを使用してテキストをhrefリンクに置き換えます

しかし、私は、このソースコードを使用している場合:

$dom = new DOMDocument; 
$dom->loadHTML($html_content); 

function preg_replace_dom($regex, $replacement, DOMNode $dom, array $excludeParents = array()) { 
    if (!empty($dom->childNodes)) { 
    foreach ($dom->childNodes as $node) { 
     if ($node instanceof DOMText && 
      !in_array($node->parentNode->nodeName, $excludeParents)) 
     { 
     $node->nodeValue = preg_replace($regex, $replacement, $node->nodeValue); 
     } 
     else 
     { 
     preg_replace_dom($regex, $replacement, $node, $excludeParents); 
     } 
    } 
    } 
} 

preg_replace_dom('/match this text/i', "<a href='http://test.de'>test</a>", $dom->documentElement, array('a')); 

をテキストに置き換えられますが、<a href='http://test.de>test</a>がプレーンテキストとしてではなく、リンクとして印刷されます。

どうすればこの問題を解決できますか?

答えて

2

私は'は見当違いで見ることができるように、

<a href='http://test.de>test</a>' 

これは、あなたが望むべきものではありません、私はこのLinkを見てきたように は、この作業を

<a href='http://test.de'>test</a> 

を交換してください最後のコード行でpreg_replace_dom()の代わりにpreg_replace()を使用することがあります。

これが役に立ちます。

+0

こんにちはNirav、私はそれを修正しましたが、コンテンツはまだプレーンテキストとして表示されます。 – SPQRInc

+0

が答えを更新しました。 –

関連する問題