Ver Mensaje Individual
  #13 (permalink)  
Antiguo 11/04/2013, 12:35
azaz
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: añadir un espacio en blanco a palabras largas con php

Cita:
Iniciado por cuasatar Ver Mensaje
Te me adelantaste en la respuesta. A menos que este sea el ejercicio de un profesor muy desocupado no le encuentro la finalidad práctica. El porcentaje de palabras en español que tienen mas de 10 letras son pocos y esta es la hora en que no sabemos que finalidad tiene el ejercicio.
haber exactamente evidentemente no son palabras de 10 caracteres lo puse a modo de ejemplo, mi problema si esta relacionado con el diseño como habeis comentado, mi problema es que tengo un div de ancho x donde no pueden sobresalir el contenido en este caso lo normal es que no sobresalgan las palabras ya que no existen palabras tan largas, pero en cambio quiero evitar que algun mal intencionado ponga texto aproposito todo junto ya que esto me romperia el diseño de la web, o simplemente que algun usuario ponga su comentario todo junto y por ejemplo solo le ponga alguna coma, esto es lo que quiero evitar, realmente leyendo un poco las funciones de php conseguir crear una funcion donde le paso dos valores uno es el texto y la otra es el numero maximo que tiene que tener las palabras como maximo de largo en caso que alguna palabra la tenga la corto añadiendo un espacio en blanco.

En fin pongo un ejemplo ya que lo que me pasa ahora es que contiene alguna, la quito y luego no se ponerla, esta es la funcion.

Código PHP:
Ver original
  1. $cadena='esta es una cadena que donde partire las palabras las palabras que tengan mas de cinco caracteres';
  2.  
  3.  
  4. function partirPalabras($cadena,$num){
  5.     $nueva_cadena='';
  6.     $palabras_array=array();
  7.     $palabras=preg_split("/[\s,]+/",$cadena );
  8.     for($i=0; $i<count($palabras); $i++){
  9.         if(strlen($palabras[$i])>$num){
  10.             $nueva_palabra= wordwrap($palabras[$i],$num," ",true);
  11.             array_push($palabras_array,$nueva_palabra);
  12.         }else{
  13.             $nueva_palabra=$palabras[$i];
  14.             array_push($palabras_array,$nueva_palabra);
  15.         }
  16.     }
  17.     $nueva_cadena=implode(" ",$palabras_array);
  18.     return $nueva_cadena;
  19. }
  20.  
  21. echo 'cadena original: '.$cadena.'<br>';
  22. echo 'cadena nueva: ';
  23. echo partirPalabras($cadena,5);

alguien sabe como solucionar lo de la coma, como veis la funcion funciona pero la como desaparece.

Por otro lado como comento andresdzphp, queria saber si puedo solucionar esto solo con css, esque creo que no es posible con css.

Por cierto mucha gracias a todos por vuestra colaboracion, un saludo.

Última edición por azaz; 11/04/2013 a las 12:42