Tengo algunas cadenas en mi código PHP que necesitan ser truncadas si son demasiado largas.Cómo truncar una cadena UTF8 en PHP?
Por ejemplo, si un texto es algo como esto:
Hola, me gustaría explicar lo maravilloso que es esto.
Sería reemplazarlo con esto:
Hola, me gustaría ...
Por lo que he hecho un simple substr
. El problema es que en UTF8 algunos personajes tienen en realidad dos caracteres. Y he tenido algunos problemas con un personaje cortado en el medio: por ejemplo, cuando trato de insertar la cadena modificada en la base de datos, se bloquea.
Aquí es mi función actual:
static function short($string, $max = 255){
if(strlen($string) >= $max){
$string = substr($string, 0, $max - 5).'...';
} return $string;
}
qué alguien conocer una manera de hacer este trabajo de la función, incluso para caracteres UTF8?
Por qué '$ max - 5'? – deceze
eche un vistazo a 'https: //api.drupal.org/api/drupal/includes! Unicode.inc/function/truncate_utf8/7' –
posible duplicado de [UTF-8 función truncado compatible] (http: // stackoverflow .com/questions/6288875/utf-8-compatible-truncate-function) – user