簡體   English   中英

如何在php中使用正則表達式刪除鏈接?

[英]How can i remove link using regex in php?

我想在href屬性中刪除與此域名vnexpress.net相匹配的所有鏈接。 這是一個鏈接示例:

<a href="http://vnexpress.net/whatever">whatever</a>

這是我的代碼:

$contents = preg_replace('/<a\s*href=\"*vnexpress*\"\s(.*)>(.*)<\/a>/', '', $data->content);

請幫我! 非常感謝!。

您已經在這里要求使用正則表達式,但這不是解析HTML的正確工具

$doc = new DOMDocument;
$doc->loadHTML($html); // load the html

$xpath = new DOMXPath($doc);
$links = $xpath->query("//a[contains(@href, 'vnexpress.net')]");

foreach ($links as $link) {
   $link->parentNode->removeChild($link);
}

echo $doc->saveHTML();

嘗試這個:

$re = "/<a[^>]+href=\"[^\"]*vnexpress.net[^>]+>(.*)<\\/a>/m";
$str = "<a id=\"\" href=\"http://vnexpress.net/whatever\">whatever <b>sss</b> </a>\n<a id=\"\" href=\"http://new.net/whatever\">whatever</a>\n";
$subst = "$1";

$result = preg_replace($re, $subst, $str);

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM