2011-10-20 3 views
2

먼저 - 저는 PHP 초보자입니다. 나는 mb_substr을 사용하여 WordPress의 제목에 제목의 길이를 제한하려하지만 제목에 " '"(아포스트라페) 또는 "-"(대시)와 같은 특정 기호가있을 때 더 적은 문자를 반환합니다. 나는 60로 절단 제목을 반환하는이 wan't 그래서 기본적으로UTF-8 16 진수는 mb_substr이있는 단일 문자로 계산됩니까?

<?php 
     $short_title = the_title('','',false); 
     $short_title_2 = mb_substr($short_title,0,60, 'utf-8');?> 
    <h3> 
    <a href="<?php the_permalink(); ?>"> 

      <?php echo $short_title_2; if($short_title_2!=$short_title) { echo "..."; }; ?> 
    </a> 
</h3> 

: 여기

은 총 60 자 (비 줄임표를 무시)를 제한, 내가 함께 일하고 있어요 코드입니다 문자를 사용하지만 구두점이나 다른 특수 문자를 사용하는 경우 유니 코드 값 등을 계산해야하는 별도의 6 문자로 계산됩니다. 실제로는 54 문자 만 반환합니다.

여기에 대시 문자의 예 제목 :

Competition - Win Tees from Listen To Your Eyes Clothing Now Ended 

이 코드는 반환해야합니다 :

<h3>Competition - Win Tees from Listen To Your Eyes Clothing Now…</h3> 

이 실제로 반환 무엇 : 데이터베이스 캐릭터 세트가 utf8_general_ci로 설정되어

<h3>Competition – Win Tees from Listen To Your Eyes Clothi…</h3> 

(제목 표 포함)

이것을 극복 할 수있는 방법이 있습니까? 당신이 단축되는 문자열 -

+2

정상으로 당신은 ‐하지되는 대시와 같은 물건을 검사 한? – CodeReaper

답변

2

디코드의 HTML entites 다시

$short_title_2 = mb_substr(html_entity_decode($short_title, ENT_QUOTES),0,60, 'utf-8'); 

http://php.net/manual/en/function.html-entity-decode.php

+0

... HTML과 혼합하기 전에 다시 ['htmlspecialchars()'] (http://php.net/htmlspecialchars)를 통해 출력을 실행하는 것을 잊지 마십시오. –

관련 문제