Foros del Web » Programando para Internet » PHP »

Problemas de version PHP 5.1.x y cadenas de texto

Estas en el tema de Problemas de version PHP 5.1.x y cadenas de texto en el foro de PHP en Foros del Web. Tengo una funcion que corta una cadena de texto en 180 caracteres mas o menos. La tomé del foro. Pero la cuestion es que no ...
  #1 (permalink)  
Antiguo 08/11/2010, 13:01
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Información Problemas de version PHP 5.1.x y cadenas de texto

Tengo una funcion que corta una cadena de texto en 180 caracteres mas o menos. La tomé del foro. Pero la cuestion es que no me funciona bien con PHP 5.1.x

Código PHP:
Ver original
  1. function cortar_frase($frase_entrada, $cortar){
  2.  
  3.    if (strlen($frase_entrada) < $cortar)
  4.    return $frase_entrada;
  5.  
  6.    $frase_corta =  substr(utf8_decode($frase_entrada),0,$cortar); // obtener la frase cortada.
  7.    $palabras = str_word_count($frase_corta,1); // obtener array con las palabras.
  8.    $total_palabras = count($palabras)-1; // contar total array elementos y restar 1 elementos
  9.    $palabras = array_splice($palabras,0,$total_palabras); // le quitamos la ultima palabra.
  10.    $frase_salida = implode(' ',$palabras); //  y concatenamos con el espacio hacia una cadena.
  11.    $frase_salida .= "..."; // se añaden los puntos suspensivos a la cadena obtenida..
  12.  
  13.    return utf8_encode($frase_salida);
  14. }

Ya tuve que usar utf8_decode() y utf8_decode() para echarla a andar, pero ahora me encuentro con que las ñ y los acentos me desaparecen en un servidor con PHP 5.1.x (yo uso la 5.2.9 en local).

Alguna pista?
  #2 (permalink)  
Antiguo 08/11/2010, 13:10
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problemas de version PHP 5.1.x y cadenas de texto

SOLUCIONADO.

Me lo había dicho Gator_V hace un tiempo:
http://www.forosdelweb.com/f18/probl...partes-855788/

La funcion quedo así:

Código PHP:
Ver original
  1. $frase_salida = mb_substr($frase_entrada, 0, $cortar_en);
  2.    $frase_salida .= "...";
  3.    return $frase_salida;

Gracias!
  #3 (permalink)  
Antiguo 08/11/2010, 13:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problemas de version PHP 5.1.x y cadenas de texto

¿Pero algo así de sencillo no te funciona?
Código PHP:
Ver original
  1. <?php
  2. function cutWords($word){
  3.     return implode(' ', array_splice(str_word_count($word, 1), 0, 5));
  4. }
  5. $str = 'foo bar baz
  6. candy vegetable fruits.';
  7. echo cutWords($str);

Edito: Pensé que lo querías por palabras no por letras
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 08/11/2010, 13:19
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problemas de version PHP 5.1.x y cadenas de texto

Ah! Si lo quería por palabras! Me hiciste acordar...

Lo pruebo y te cuento!

Edito: en principio, no fue tan sencillo. Me aparecen cajitas aqui y allá. Creo que me voy a quedar con lo de cortar por caracteres...

Etiquetas: cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:13.