XPressME Integration Kit

フォーラム

Re: HTMLタグを認識してくれません。

#2829
toemon
キーマスター

現在なかなか集中できなくなったので、もしtoemonさんのサーバーを

お貸し頂けるのであれば少しお時間をください。(数日)

どうぞ、どうぞ、

こういうときのためだけに準備しているサーバーなので気軽に使ってください。

※もしかして、これ?

あれ、なんだこれ? よくわからないですネ。

libxml2のバージョン(phpinfo()の出力でlibxmlとかxmlの項目で確認できます)が2.7.0, 2.7.1, 2.7.2だと、

libxml2のバグ?の影響をうけて< >が取り除かれてしまうとのことです。

手元の環境では Ver 2.6.3とか2.7.3しかないので確認は取れていません。

これに該当する場合は

XPressMEモジュール /include/xml.php 83行目あたり

function & parse(&$data){<br />
$this->document = array();<br />
$this->stack    = array();<br />
$this->parent   = &$this->document;<br />
<br />
// return xml_parse(&$this->parser, &$data, true) ? $this->document : NULL; // GIJ<br />
$ret = @xml_parse($this->parser, $data, true) ? $this->document : NULL;<br />
return $ret ;<br />
}<br />

function & parse(&$data){<br />
$this->document = array();<br />
$this->stack    = array();<br />
$this->parent   = &$this->document;<br />
<br />
//xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch<br />
if(LIBXML_DOTTED_VERSION =='2.7.0' ||<br />
LIBXML_DOTTED_VERSION == '2.7.1' ||<br />
LIBXML_DOTTED_VERSION == '2.7.2')<br />
{<br />
$data =str_replace('&lt;','<',$data );<br />
$data =str_replace('&gt;','>',$data );<br />
$data =str_replace('&amp;','&',$data );<br />
}<br />
//end Fix<br />
<br />
// return xml_parse(&$this->parser, &$data, true) ? $this->document : NULL; // GIJ<br />
$ret = @xml_parse($this->parser, $data, true) ? $this->document : NULL;<br />
return $ret ;<br />
}

に変更することで修正できるかもしれません。

注意 コード中 全角&の部分は実際には半角の&です。 うーん、コードがまともに貼れない orz

修正したコードは include/xml.php(libxml2 bug fixed)よりダウンロードできます。

また、libxml2のバグが原因の場合

こちらのページで報告がありますように WordPress自体にもパッチが必要となりますし

さらにこちらのページに報告がありますように、XHLD,D3pipeにも影響があるようです。