需要帮助从链接中删除html标记

时间:2011-06-02 16:33:27

标签: php clickable

代码:

$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标记。感谢。

3 个答案:

答案 0 :(得分:1)

当然,我们怎么不能发布这个强大的答案:

如果您需要解析HTML,可能需要使用DOMDocument

http://www.php.net/manual/en/domdocument.loadhtml.php

答案 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>