Largo de palabras... XML

 Largo de palabras... XML

Largo de palabras... XML [07-11 17:30] por CELVEN [ven]
Los que trabajan con php y tiene los resultados metidos en alguna tabla, y simplemente si el titulo del producto en cuestion les rompe la misma, utilicen la siguiente función...
$palabras = explode(/" /",$title) ;
$total_palabras = count($palabras) ;
for($a = 0 ; $a < $total_palabras ; $a++) {
if(strlen($palabras[$a]) > 14) { $palabras[$a] = chunk_split($palabras[$a],14,/" /") ; }
}
$title = implode($palabras,/" /") ;
Saludos....

[08-11 07:28] por CELVEN [ven]
Se me olvidaba darles la explicacion de como trabaja. Toma la variable $titulo, cuenta las palabras y las almacena en la variable $palabras (Que es un arreglo formado por todas las palabras) luego en un ciclo o bucle for, va preguntando palabra por palabra si alguna supera los 14 caracteres (Este numero pueden colocar lo que quieran) de ser positivo, entonces esta palabra la dividirá colocando un espacio de por medio. Pueden modificar (obviamente) lo que deseen de este script, espero los ayude tanto como a mi. Saludos.

.. [08-11 14:56] por WOOKIE [arg]
Hola Celven. Te referis a titulos de arts. como super-oferta,no-te-la-pierdas!!!!!!! , sin espacios para bajar linea?

[15-11 14:18] por CELVEN [ven]
Exactamente, si lo tenias dentro de una tabla pequeña (puede se rel borde de una pagina) te rompia la misma, hay gente que coloca cosas como ******oferta,ya-es-lo-mejor*********** y eso lo tomaba como una sola palabra, ves?

.. [16-11 08:00] por WOOKIE [arg]
hola celven. mira que estas metiendo en loop al script tantas veces como Cant. de Arts. POR Cant. de Palabras de cada uno. (a 50 arts. X 15 pals de promedio estas haciendo una iteracion de 750 ciclos para cada impresion), mas la descomposicion y composicion de la cadena. no te convendra pasarle a $title una unica vez un regexp o idem q reemplace comas y puntos por comas+espacio / puntos+espacio ? coma y punto son el 99% de los caracteres molestos. saludos

Podria ser algo así? [25-11 16:42] por LEOROM81 [arg]
function cortar($title) {
$title = str_replace(/",/",/", /", $title);
$title = str_replace(/"./",/". /", $title);
$title = str_replace(/"*/",/"/", $title);
return $title;
}
Saludos Leo.

exacto [25-11 19:46] por WOOKIE [arg]
inclusive tenes dos formas mas. una es optimizar ese codigo, recordando que las funciones son (virtualmente) variables (str_replace), por lo que podes reemplazar el 2do. $title de la primera instancia por el 2do. str_replace, y a su vez en este reemplazarle el $title por el 3er. replace. Con esto ahorras la asignacion a $title tres veces (es decir, bajas directamente el valor que devuelve una funcion como variable para otra funcion). $title = funcion( a/b , funcion( a/c , funcion( a/d ) ). y la 2da forma es utilizar expresiones regulares, que aunque str_replace ES una regexp encapsulada, podes resumir el proceso en menos espacio. No usar regexps en una aplicacion de parseo de texto es como tener un auto pero sacar las patas por el suelo y darle como los hermanos macana, mas o menos Saludos Leo.

[16-11 12:49] por CELVEN [ven]
Suena bien... dejame trabajar para mejorarlo, saludos.

. [08-11 06:16] por NROKIREDEF [arg]
muy util!
gracias


Gracias por visitar el foro de " Largo de palabras... XML".
Búsqueda personalizada

@ empremexico Derechos Reservados 2024 - Empresas de México , cumpliendo con GDPR o RGPD

Políticas de Privacidad  - Términos y Condiciones - Noticias - Mapa del Sitio - Contacto