在html标签上阅读更多脚本剪辑

时间:2014-05-21 17:45:30

标签: php

我有一个PHP代码,它会切断字符串并放置一个更多的读取按钮。这一切都运行良好,直到我看到它通过文本中的一些html标签砍掉。女巫破坏了功能。这是我的代码:

$self = $_SERVER['PHP_SELF'];

function chopstring( $string, $id, $maxlength = 480, $append = '...' ){
$strlen = strlen( $string );
if( $strlen <= (int) $maxlength ){
    return $string;
}
else{
    $chopped = substr( $string, 0, (int) $maxlength );
    $chopped_on_space = substr( $chopped, 0, strrpos( $chopped, ' ' ) );
    return ( $chopped_on_space ) . $append . " <a class='btn-orange right' href='".$self."?id=".$id."'>Lees verder</a>";
    }
}

我怎样才能确保它不会再破坏br img和url标签

1 个答案:

答案 0 :(得分:0)

这有助于:

function chopstring( $string, $id, $maxlength = 480 ){
    $strlen = strlen( $string );
    if( $strlen <= (int) $maxlength ){
        return $string;
    }
    else{
        $chopped = substr( $string, 0, (int) $maxlength );
        $chopped_on_space = substr( $chopped, 0, strrpos( $chopped, ' ' ) );
        $output = new tidy;
        $output->parseString($chopped_on_space, array('show-body-only'=>true, 'indent'=>true), 'UTF8');
        $output->repairString();
        $output = preg_replace('#(( ){0,}<br( {0,})(/{0,1})>){1,}$#i', '', $output);
        return ( $output ) . "... <a class='btn-orange right' href='".$self."?id=".$id."'>Lees verder</a>";
        }
}

$ output抓取$ chopped_on_space并获得修复,preg_replace确保字符串末尾没有<br>