开发者

PHP Substr Function Trimming Problem [duplicate]

This question alre开发者_如何学JAVAady has answers here: Why my php substr() shows obscure characters when cutting a text? (4 answers) Closed 8 years ago.

I'm using below code for triming titles and show it recent posts section on my blog:

<?php global $post;
$releaseDate = get_post_meta($post->ID, "gosterim_tarihi", true);
foreach( $images as $image ) {
    $title = get_the_title();
    if (strlen($title) > 20) { $title = substr($title, 0, 20) . '&hellip;'; }
    $attachmentimage=wp_get_attachment_image_src( $image->ID, 'large' );
    echo '<li><a href="'. get_permalink() .'" title="' . $title . '"><img src="'. $attachmentimage[0] .'" alt="'. $title .'" />'. $title .'<span>Gösterim Tarihi: ' . $releaseDate . '</span></a></li>';
} ?>

But there are problem with HTML character entities. When i use substr function for trim a title, substr function trimming HTML character entities too.

So i tried to use html_entity_decode function but i can't do it very well.

Anyone can help me?


Try this:

$output = htmlentities(substr(html_entity_decode($input), 0, 20));

This will decode all entities so substr won't break anything. After that you can encode all characters back to their entities.


I think you can use the strip_tags function there eg:

substr(strip_tags($title), 0, 20);

This will deal only with the title excluding any html chars.


Use This Function

<?php
  function keephtml($string){
          $res = htmlentities($string);
          $res = str_replace("&lt;","<",$res);
          $res = str_replace("&gt;",">",$res);
          $res = str_replace("&quot;",'"',$res);
          $res = str_replace("&amp;",'&',$res);
          return $res;
}
?>


It would be cleaner if you can leave the html-encoding until the last minute, e.g. when you actually echo the $title string. Of course, that means you have to remember to encode all the strings yourself.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜