代码:
$message = "<a href=\"http://www.stackoverflow.com\" target=\"new\">My link</a>";
function unclick ($message) {
$message = preg_replace("#\<a.+href\=[\"|\'](.+)[\"|\'].*\>.*\<\/a\>#U","$1",$message);
$message = str_replace("mailto:","",$message);
return $message;
}
仅当链接看起来像这样时才有效:
http://stackoverflow.com/
不幸的是,它不适用于更长的链接:
http://stackoverflow.com/questions/ask
需要一种方法从所有链接中删除html标记。感谢。
答案 0 :(得分:1)
当然,我们怎么不能发布这个强大的答案:
如果您需要解析HTML,可能需要使用DOMDocument
答案 1 :(得分:0)
我测试了你的代码,它对我来说很好。
另一种解决方案:
必须在PHP中完成,还是可以在jQuery中使用JavaScript?
根据你的头衔:
yourlink.removeAttr('href');
根据你的代码所做的:
var url = yourlink.attr('href');
答案 2 :(得分:0)
<pre>
<?php
$input = '<a href="http://www.stackoverflow.com/hello/hi/bye">hello</a>';
$sx = simplexml_load_string($input);
echo ($sx['href']);
?>
</pre>
试试这个。如果网址不是escaped with \
,它的工作正常
如果它被转义,那么使用这个脚本:
<pre>
<?php
$input = '<a href=\"http://www.stackoverflow.com/hello/hi/bye\">hello</a>';
$input = str_replace('\\','',$input);
$sx = simplexml_load_string($input);
echo ($sx['href']);
?>
</pre>