我有一个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标签
答案 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>
。