替换rawurlencode中的实体,即< > “

时间:2010-08-14 13:06:32

标签: php str-replace rawurl

我有以下代码

<a href="snippet:add?code=<?php echo rawurlencode($snippet->snippet_content); ?>Save snippet</a>

其中

'$snippet = &lt;a rel=&quot;nofollow&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=&lt;?php the_permalink(); ?&gt;&quot; title=&quot;Submit this post to Digg&quot;&gt;Digg this!&lt;/a&gt;'

我怎样才能将rawurlencode替换为“&amp; lt”;到“&lt;”?

非常感谢提前

抢劫

更新

使用

<?php echo rawurlencode(html_entity_decode($snippet->snippet_content)); ?>

如下面的海报所示,谢谢你修改了&amp; lt;到“&lt;”但是在整个片段中插入\

<a rel=\"nofollow\" href=\"http://delicious.com/post?url=<?php the_permalink(); ?>&title=<?php echo urlencode(get_the_title($id)); ?>\" title=\"Bookmark this post at Delicious\">Bookmark at Delicious</a>

我正在寻找的输出没有反斜杠

<a rel="nofollow" href="http://delicious.com/post?url=<?php the_permalink(); ?>&title=<?php echo urlencode(get_the_title($id)); ?>" title="Bookmark this post at Delicious">Bookmark at Delicious</a>
欢呼抢劫

固定

谢谢所有发帖的人!

<?php echo rawurlencode(htmlspecialchars_decode(stripslashes($snippet->snippet_content))); ?>

有魅力,

非常感谢抢劫

2 个答案:

答案 0 :(得分:3)

rawurlencode()与转换为/从html编码无关。它执行URL编码。要解码的匹配函数是rawurldecode(),但同样,这不是您在这里寻找的。

&lt;编码是html编码。要解决此问题,您需要html_entity_decode()进行解码或htmlentities()进行编码。

上述功能集的基本用法是:

$urlEncodedStr  = rawurlencode($str);
$urlDecodedStr  = rawurldecode($str);
$htmlEncodedStr = htmlentities($str);
$htmlDecodedStr = html_entity_decode($str);

要将它们组合在一起,您可以进行一些组合:

$urlEncodedHtmlDecodedStr  = rawurlencode(html_entity_decode($str));

答案 1 :(得分:2)

您应该使用the html_entity_decode() function&lt;转移到<

但由于这是一个URL参数,因此您需要在之后调用rawurlencode(),即

<?php echo rawurlencode(html_entity_decode($snippet->snippet_content)); ?>