0

代码:

$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 标记的方法。谢谢。

4

3 回答 3

1

当然,我们如何不能发布 bobince 强大的答案:

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

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

于 2011-06-02T16:35:50.977 回答
0

我测试了你的代码,它对我来说很好。

另一种解决方案:

这必须在 PHP 中完成,还是可以将 JavaScript 与 jQuery 一起使用?

根据你的标题:

yourlink.removeAttr('href');

根据您的代码的作用:

var url = yourlink.attr('href');
于 2011-06-02T16:39:56.000 回答
0
<pre>
<?php
$input = '<a href="http://www.stackoverflow.com/hello/hi/bye">hello</a>';
$sx = simplexml_load_string($input);
echo ($sx['href']);
?>
</pre>

尝试这个。如果 url 不是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>
于 2011-06-02T16:50:11.450 回答