IEエンジンを使うと、RSSがうまくパース出来ない時がある。
「<br /」ってなかんじで>が抜けている場合、発生する。
ソースを読むと、ちゃんと対応している。。。どうやら、マルチバイトの認識がおかしいっぽいので修正。。。
/system/lib-syndication.phpをエディタで開き、566行目あたりの「SYND_truncateSummary」関数を以下のように変更
function SYND_truncateSummary( $text, $length )
{
if( $length == 0 )
{
return '';
}
else
{
$text = stripslashes( $text );
$text = trim( $text );
$text = preg_replace( "/(\015)/", "", $text );
if(( $length > 3 ) && ( MBYTE_strlen( $text ) > $length ))
{
// マルチバイト対応 2007/04/12 hiro {
// $text = substr( $text, 0, $length - 3 ) . '...';
$text = MBYTE_substr( $text, 0, $length - 3 ) . '...';
// } マルチバイト対応 2007/04/12 hiro
}
// Check if we broke html tag and storytext is now something
// like "blah blah <a href= ...". Delete "<*" if so.
if( mb_strrpos( $text, '<' ) > mb_strrpos( $text, '>' ))
{
$text = MBYTE_substr( $text, 0, mb_strrpos( $text, '<' ) - 1 )
. ' ...';
}
return $text;
}
}
今1.4.1を使っているのだが、最新版だと直っているのかな?