<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post/4286/</link>
<title><![CDATA[[格式代码]格式化html代码在PHP中htmlentities跟htmlspecialchars的区别,及其如何把htmlentities再还回来去掉标签。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 08 May 2011 05:25:20 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/4286/</guid> 
<description>
<![CDATA[ 
	把encode的html通过decode转回来再strip_tags去掉冗余的html标签：<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
$str = &#039;&amp;lt;a href=/index.html style=&amp;quot;font-size:12px&amp;quot; &amp;gt; jackX &amp;lt;/a&amp;gt;&#039;;
$strDecode =&nbsp;&nbsp;html_entity_decode($str);
echo &quot;替换前：&quot;.$strDecode.&quot;&#92;n&quot;;
$strstriped = strip_tags($strDecode);
echo &quot;替换后：&quot;.$strstriped;
</textarea><br/>返回：<br/>---------- 调试PHP ----------<br/>替换前：&lt;a href=/index.html style=&quot;font-size:12px&quot; &gt; jackX &lt;/a&gt;<br/>替换后： jackX <br/><br/>———————————htmlentities和htmlspecialchars区别———————————<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
$str=&#039;&lt;a href=&quot;test.html&quot;&gt;测试页面&lt;/a&gt;&#039;;
echo htmlentities($str);
echo&nbsp;&nbsp;&quot;&#92;n&quot;;
$str=&#039;&lt;a href=&quot;test.html&quot;&gt;测试页面&lt;/a&gt;&#039;;
echo htmlspecialchars($str);
?&gt;
</textarea><br/>---------- 调试PHP ----------<br/>&amp;lt;a href=&amp;quot;test.html&amp;quot;&amp;gt;&amp;sup2;&amp;acirc;&amp;Ecirc;&amp;Ocirc;&amp;Ograve;&amp;sup3;&amp;Atilde;&amp;aelig;&amp;lt;/a&amp;gt;<br/>&amp;lt;a href=&amp;quot;test.html&amp;quot;&amp;gt;测试页面&amp;lt;/a&amp;gt;<br/><br/>如下结果所示：htmlentities把中文的测试页面也给变了。<br/><br/><br/>—————————————————————————————————————————————————————<br/><br/>很多人都以为htmlentities跟htmlspecialchars的功能是一样的，都是格式化html代码的，我以前也曾这么认为，但是今天我发现并不是这样的。<br/><br/>这两个函数在格式化带有英文字符的html代码的时候基本没啥问题，但是htmlentities对中文字符也不放过，这样得出来的结果是中文字符部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题，而今天公司的一个收藏站却因为有有非英文字符而出现了问题，我最终查出来是htmlentities这个函数的问题，同时我也找到了htmlspecialchars这个函数。<br/><br/>对于这两个函数，php手册上都是英文做的解释，其中在htmlentities函数的说明部分有这么一段英文：<br/><br/>This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.<br/><br/>从这句话中我们也可以看出来这两个函数虽然基本功能差不多，但是还是有细微的差别在里面的。再仔细看htmlspecialchars函数里面的一段话：<br/><br/>The translations performed are:<br/><br/>‘&amp;’ (ampersand) becomes ‘&amp;’<br/><br/>‘”‘ (double quote) becomes ‘”‘ when ENT_NOQUOTES is not set.<br/><br/>”’ (single quote) becomes ”’ only when ENT_QUOTES is set.<br/><br/>‘&lt;’ (less than) becomes ‘&lt;’<br/><br/>‘&gt;’ (greater than) becomes ‘&gt;’<br/><br/><br/>可以了解到htmlspecialchars只转化上面这几个html代码，而htmlentities却会转化所有的html代码，连同里面的它无法识别的中文字符也给转化了。<br/><br/>我们可以拿一个简单的例子来做比较：<br/><br/>$str=&#039;&lt;a href=&quot;test.html&quot;&gt;测试页面&lt;/a&gt;&#039;;<br/>echo htmlentities($str);<br/>?&amp;gt;<br/>$str=&#039;&lt;a href=&quot;test.html&quot;&gt;测试页面&lt;/a&gt;&#039;;<br/>echo htmlspecialchars($str);<br/>?&amp;gt;<br/>有条件的朋友，可以分别运行一下上面的这两段代码，就可以看出两者的差别了。<br/><br/>来源：http://blog.fesite.com/2007/08/23/php-htmlentities-htmlspecialchars/
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/4286/#blogcomment54533</link>
<title><![CDATA[[评论] [格式代码]格式化html代码在PHP中htmlentities跟htmlspecialchars的区别,及其如何把htmlentities再还回来去掉标签。]]></title> 
<author>wang &lt;wangguanhappy@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sun, 08 May 2011 08:57:35 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/4286/#blogcomment54533</guid> 
<description>
<![CDATA[ 
	还真没研究过。谢谢分享
]]>
</description>
</item>
</channel>
</rss>