PHP html_decode / html_entity_decode使用JS中断页面

时间:2018-06-19 19:33:09

标签: php html html-entities htmldecode

尝试在一页中打印HTML时遇到一些问题。 我有一个substr来显示文本的前X个字符,还有一个按钮来显示更多。我的问题是,如果我使用html_decode或html_entity_decode以HTML格式打印(不仅是html),它将中断页面并显示所有文本,而不是前X个字符和“显示更多”按钮。

PHP:

    $item->description =  html_decode($item->description);
if( strlen( $item->description ) > 70 ) {
    $item->description = substr($item->description, 0, 50 ) .
    '<span class="more-link">... <a href="#"><i class="fa fa-caret-down"></i> ' . t( 'theme_more', 'More' ) . '</a></span>' .
    '<span class="hidden-part">' . substr( $item->description, 50 )  . '</span>' .
    '<span class="less-link"><a href="#"><i class="fa fa-caret-up"></i> ' . t( 'theme_less', 'Less' ) . '</a></span>';
}

JS代码:

$( '.description .more-link a, .description .less-link a' ).on( 'click', function(e) {
e.preventDefault();
var desc = $(this).parents( '.description' );
var part = desc.find( '.hidden-part' ),
more = desc.find( '.more-link' ),
less = desc.find( '.less-link' );
if( part.is( ':visible' ) ) {
    part.hide();
    more.show();
    less.hide();
} else {
    part.show();
    more.hide();
    less.show();
}

});

如果我只是为了调试而将html_decode更改为strip_tags,它会按预期工作,但会将HTML字符打印为纯文本(显示第一个X字符,然后在“显示更多”按钮中,显示其余文本)。 使用html解码,基本上可以显示所有文本,并在文本中间创建按钮。

我的问题不是HTML标记被substr剪掉。

有人可以帮我吗? 谢谢

0 个答案:

没有答案