Foros del Web » Programando para Internet » PHP »

script o función para cortar string

Estas en el tema de script o función para cortar string en el foro de PHP en Foros del Web. Hola Quisiera saber si alguno me puede pasar un script que por ejemplo, tome un string y lo muestre hasta el 5to espacio (" ") ...
  #1 (permalink)  
Antiguo 04/05/2005, 09:53
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 5 meses
Puntos: 0
script o función para cortar string

Hola
Quisiera saber si alguno me puede pasar un script que por ejemplo, tome un string y lo muestre hasta el 5to espacio (" ")

ejemplo: "hola como están todos, mi nombre es ratamaster"
quedaría: "hola como están todos, mi nombre"

gracias
Ratamaster
  #2 (permalink)  
Antiguo 04/05/2005, 11:27
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola, en los FAQS encontré esta función pero no me funciona correctamente, mi problema es que el texto lo traigo de una bd, y este texto fue introducído a la bd por medio de un RTE (rich text editor), y por lo tanto me guarda todos los tags de html.

intenté usar strip_tags() para quitar los tags de html pero no me ha funcionado.

Código PHP:
function cortar_frase($frase_entrada,$cortar){
   
$frase_corta=substr($frase_entrada,0,$cortar); // obtener la frase cortada.
   
$palabras=str_word_count($frase_corta,1); // obtener array con las palabras.
   
$total_palabras=count($palabras)-1// contar total array elementos y restar 1 elementos
   
$palabras=array_splice($palabras,0,$total_palabras  ); // le quitamos la ultima palabra.
   
$frase_salida=implode(' ',$palabras); //  y concatenamos con el espacio hacia una cadena.
   
$frase_salida .= "..."// se añaden los puntos suspensivos a la cadena obtenida..

  
return $frase_salida;
}

function 
cortar_frase(strip_tags($row['text']),20

Lo que me está volviendo loco, es que si defino una variable del tipo string con tags la función me funciona:

Código PHP:
$text="<b>hola como andan todos, blablablablablab albab ablablab</b>";

function 
cortar_frase(strip_tags($text),10
pero si uso $row['text'], no funciona :(

Tengo que aclarar que la query funciona y el dato es traído.
Otra cosa que me enoja, es que si hago un strip_tags de $row['text'], pero fuera de la función, se despliega todo el texto sin los tags!!!...entonces creo que el problema está en la función.
Ayuda!!
Gracias

ratamaster
  #3 (permalink)  
Antiguo 04/05/2005, 12:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La llamada a una función no se hace con "function" delante .. eso sólo se usa para definir tu función .. Además la función sólo "procesa" .. devuelve un resultado que tendras que usar un "echo" si quieres verlo .... (tal vez sea un problema al transcribir tus ejemplos en el foro .. ??)

Código PHP:
function cortar_frase($frase_entrada,$cortar){ 
   
$frase_corta=substr($frase_entrada,0,$cortar); // obtener la frase cortada. 
   
$palabras=str_word_count($frase_corta,1); // obtener array con las palabras. 
   
$total_palabras=count($palabras)-1// contar total array elementos y restar 1 elementos 
   
$palabras=array_splice($palabras,0,$total_palabras    ); // le quitamos la ultima palabra. 
   
$frase_salida=implode(' ',$palabras); //  y concatenamos con el espacio hacia una cadena. 
   
$frase_salida .= "..."// se añaden los puntos suspensivos a la cadena obtenida.. 

  
return $frase_salida


echo 
cortar_frase(strip_tags($row['text']),10); 
Ahora .. puede ser que tengas a su vez problemas con el uso de strip_tags() .. si te fijas en la documentación oficial de dicha función .. dicen que no quita algunas cosas como saltos de liena y códigos similares /n y afines .. Puede ser que todo eso afecte a: str_word_count($frase_corta,1) que cuenta "palabras" .. tal vez se confunda ahí.

Revisa los comentarios de los usuarios de dicha función y prueba sus ejemplos
http://www.php.net/manual/en/function.strip-tags.php

Tambien revisa:
str_replace() para quitar los \n ó \r ó \n\r que pudieran quedar por ahí ...
www.php.net/str_replace

Un saludo,
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:19.