<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>简单生活 -- Kevin Yang的博客 &#187; Writer吃标签</title>
	<atom:link href="http://www.imkevinyang.com/tags/writer%e5%90%83%e6%a0%87%e7%ad%be/feed" rel="self" type="application/rss+xml" />
	<link>http://www.imkevinyang.com</link>
	<description>It&#039;s all about sharing</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:37:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>解决WordPress使用客户端发布文章时HTML标签被过滤掉（吃标签）的问题</title>
		<link>http://www.imkevinyang.com/2009/07/%e8%a7%a3%e5%86%b3wordpress%e4%bd%bf%e7%94%a8%e5%ae%a2%e6%88%b7%e7%ab%af%e5%8f%91%e5%b8%83%e6%96%87%e7%ab%a0%e6%97%b6html%e6%a0%87%e7%ad%be%e8%a2%ab%e8%bf%87%e6%bb%a4%e6%8e%89%e7%9a%84%e9%97%ae.html</link>
		<comments>http://www.imkevinyang.com/2009/07/%e8%a7%a3%e5%86%b3wordpress%e4%bd%bf%e7%94%a8%e5%ae%a2%e6%88%b7%e7%ab%af%e5%8f%91%e5%b8%83%e6%96%87%e7%ab%a0%e6%97%b6html%e6%a0%87%e7%ad%be%e8%a2%ab%e8%bf%87%e6%bb%a4%e6%8e%89%e7%9a%84%e9%97%ae.html#comments</comments>
		<pubDate>Tue, 21 Jul 2009 16:33:00 +0000</pubDate>
		<dc:creator>Kevin Yang</dc:creator>
				<category><![CDATA[技术随笔]]></category>
		<category><![CDATA[疑难杂症]]></category>
		<category><![CDATA[HTML标签过滤]]></category>
		<category><![CDATA[WordPress吃标签]]></category>
		<category><![CDATA[Writer吃标签]]></category>
		<category><![CDATA[Xmlrpc]]></category>

		<guid isPermaLink="false">http://www.imkevinyang.com/2009/03/%e8%a7%a3%e5%86%b3wordpress%e4%bd%bf%e7%94%a8%e5%ae%a2%e6%88%b7%e7%ab%af%e5%8f%91%e5%b8%83%e6%96%87%e7%ab%a0%e6%97%b6html%e6%a0%87%e7%ad%be%e8%a2%ab%e8%bf%87%e6%bb%a4%e6%8e%89%e7%9a%84%e9%97%ae.html</guid>
		<description><![CDATA[问题描述
<p>在000webhost虚拟主机上部署好了Wordpress系统之后，就打算使用Live Writer离线工具来写博了。但是发布一篇测试文章后却看到，网页上显示的文章内容乱七八糟的，一大堆什么p呀strong之类的本不应该出现在文章中的html标签名，Html的尖括号全都给吃了。图片啥的也没有正&#8230;</p>]]></description>
			<content:encoded><![CDATA[<h2>问题描述</h2>
<p>在000webhost虚拟主机上部署好了Wordpress系统之后，就打算使用Live Writer离线工具来写博了。但是发布一篇测试文章后却看到，网页上显示的文章内容乱七八糟的，一大堆什么p呀strong之类的本不应该出现在文章中的html标签名，Html的尖括号全都给吃了。图片啥的也没有正常显示。</p>
<h2>问题原因</h2>
<p>Google了老半天，才发现这原来是libxml2这个库的bug造成的，这个bug会导致html标签中使用的尖括号和&amp;符号都被直接剔除掉。所以发布上去的文章没能正确解析HTML标签，只留下了一大堆的p和strong等等的Html标签名。还有以下原因会造成Live Writer发布文章的时候吃标签的问题：</p>
<ul>
<li>当你使用xmlrpc形式的API从离线客户端发布文章时，&lt;&gt;&amp;这几个符号都会被剔除掉 </li>
<li>导入博客时，Url缺失 </li>
<li>RSS输出时和客户端发布文章一个情况 </li>
</ul>
<h2>解决办法</h2>
<p>关于这个bug，网上很多的解决方案都是说要把libxml2从原来的2.7.2版本降级到2.6.32版本。但是无奈，本人使用的是免费的虚拟主机空间，人家主机提供商才不会管你这件事呢。所以只能另辟蹊径了。又Google了N久（唉，对Google的依赖太大了），找到了一个老外写的解决方案。按照上面的方法去试了一下，结果发现果然行得通。</p>
<p>WordPress中用到和libxml2相关的php代码文件如下：</p>
<pre class="csharpcode">/wp-admin/import/blogger.php
/wp-admin/link-parse-opml.php
/wp-includes/atomlib.php
/wp-includes/<span class="kwrd">class</span>-IXR.php</pre>
<p>在这几个文件中找到<strong><font color="#ff0000">xml_parse</font></strong>函数的调用，在此之前加入如下代码：</p>
<pre class="csharpcode"><span class="rem">//xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch</span>
<span class="kwrd">if</span>(LIBXML_DOTTED_VERSION == <span class="str">'2.7.0'</span> ||
    LIBXML_DOTTED_VERSION == <span class="str">'2.7.1'</span> ||
    LIBXML_DOTTED_VERSION == <span class="str">'2.7.2'</span> ||
    LIBXML_DOTTED_VERSION == <span class="str">'2.7.3'</span>
){
    $xml =str_replace(<span class="str">&quot;&amp;lt;&quot;</span>,<span class="str">&quot;&amp;#60;&quot;</span>,<font color="#ff0000">$xml</font>);
    $xml =str_replace(<span class="str">&quot;&amp;gt;&quot;</span>,<span class="str">&quot;&amp;#62;&quot;</span>,<font color="#ff0000">$xml</font>);
    $xml =str_replace(<span class="str">&quot;&amp;amp;&quot;</span>,<span class="str">&quot;&amp;#38;&quot;</span>,<font color="#ff0000">$xml</font>);
}
<span class="rem">//end Fix</span>
xml_parse($parser, $xml);</pre>
<p>
  </p>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>这里需要注意的是上面的红色标注的部分，需要替换成<strong><font color="#ff0000">xml_parse</font></strong>函数中使用的实际的变量。</p>

	标签：<a href="http://www.imkevinyang.com/tags/html%e6%a0%87%e7%ad%be%e8%bf%87%e6%bb%a4" title="HTML标签过滤" rel="tag">HTML标签过滤</a>, <a href="http://www.imkevinyang.com/tags/wordpress%e5%90%83%e6%a0%87%e7%ad%be" title="WordPress吃标签" rel="tag">WordPress吃标签</a>, <a href="http://www.imkevinyang.com/tags/writer%e5%90%83%e6%a0%87%e7%ad%be" title="Writer吃标签" rel="tag">Writer吃标签</a>, <a href="http://www.imkevinyang.com/tags/xmlrpc" title="Xmlrpc" rel="tag">Xmlrpc</a>, <a href="http://www.imkevinyang.com/categories/techarticles" title="技术随笔" rel="tag">技术随笔</a>, <a href="http://www.imkevinyang.com/categories/techarticles/knottyproblems" title="疑难杂症" rel="tag">疑难杂症</a><br />

	<h4 style="background-color:#3B3B3B;border-bottom:2px groove gray;color:#F2F2F2;margin-top:20px;padding:6px 6px 6px 15px;margin:20px 0px 0px 0px">你可能对下面的文章感兴趣</h4>
	<ul class="st-related-posts">
	<li>无相关日志</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.imkevinyang.com/2009/07/%e8%a7%a3%e5%86%b3wordpress%e4%bd%bf%e7%94%a8%e5%ae%a2%e6%88%b7%e7%ab%af%e5%8f%91%e5%b8%83%e6%96%87%e7%ab%a0%e6%97%b6html%e6%a0%87%e7%ad%be%e8%a2%ab%e8%bf%87%e6%bb%a4%e6%8e%89%e7%9a%84%e9%97%ae.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: www.imkevinyang.com @ 2012-02-09 10:16:02 -->
