4

我有以下代码

<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 来替换 "<"; 到一个“<”?

提前谢谢了

更新

使用

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

正如下面的海报所建议的,thankyou 修复了不断变化的 < ; 到 "<" 但在整个片段中插入 \

<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))); ?>

发挥魅力,

非常感谢抢

4

2 回答 2

3

rawurlencode()与转换为/从 html 编码无关。它执行 URL 编码。decode 的匹配函数是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));
于 2010-08-14T13:13:59.350 回答
2

您应该使用html_entity_decode()函数将 a 转义&lt;<

但由于这是一个 URL 参数,你需要rawurlencode()事后调用,即

<?php echo rawurlencode(html_entity_decode($snippet->snippet_content)); ?>
于 2010-08-14T13:10:16.777 回答