Foros del Web » Programando para Internet » PHP »

No contar espacios en una palabra

Estas en el tema de No contar espacios en una palabra en el foro de PHP en Foros del Web. Hola amigos! Les cuento que estoy creando un sístema de muros, y por ejmplo yo puse: Código PHP: $muro  =  htmlentities ( $_POST [ 'comentario' ...
  #1 (permalink)  
Antiguo 15/02/2012, 11:58
Avatar de Pcfan  
Fecha de Ingreso: enero-2012
Ubicación: Concepción - Chile
Mensajes: 14
Antigüedad: 12 años, 5 meses
Puntos: 1
No contar espacios en una palabra

Hola amigos!
Les cuento que estoy creando un sístema de muros, y por ejmplo yo puse:

Código PHP:
$muro htmlentities($_POST['comentario'], ENT_QUOTES"UTF-8");

if(
strlen($muro) < 5){
echo
'0: No se aceptan escritos tan cortos.';} 
Y lo que pasa es que alguien por ejemplo deja 6 espacios y después le da a compartir y este se publica, entonces lo que yo quiero lograr es que cuente sólo las letras de la cadena, excluya los espacios.

Ejemplo: Hola mundo (posee 9 caracteres pero con los espacios cuenta 10)

Visite este tema pero probe el código planteado pero no funciono :P
http://www.forosdelweb.com/f18/contar-cadenas-texto-sin-incluir-espacios-ni-html-845198/

Saludos :D
  #2 (permalink)  
Antiguo 15/02/2012, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 2 meses
Puntos: 2534
Respuesta: No contar espacios en una palabra

Puedes eliminar primero los espacios y contar, después haces lo de siempre. ;)

Usa str_replace() para eso.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/02/2012, 12:18
Avatar de Pcfan  
Fecha de Ingreso: enero-2012
Ubicación: Concepción - Chile
Mensajes: 14
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: No contar espacios en una palabra

Gracias por tu respuesta, lo hice pero me conto igual 10 espacios :P
Código PHP:
Ver original
  1. $muro = 'Hola mundo';
  2. $no_spaces = str_replace('','',$muro);
  3. $contar = strlen($no_spaces);
  4.  
  5. echo $contar;
  6. //Me dio como resultado 10 :P
  #4 (permalink)  
Antiguo 15/02/2012, 12:18
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 11 meses
Puntos: 793
Respuesta: No contar espacios en una palabra

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo strlen(str_replace(' ', '', 'Hola Mundo')); //9

Código PHP:
Ver original
  1. $no_spaces = str_replace('','',$muro); //mal
  2. $no_spaces = str_replace(' ','',$muro); //bien (Note el espacio en el primer parámetro)
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 15/02/2012, 12:24
Avatar de Pcfan  
Fecha de Ingreso: enero-2012
Ubicación: Concepción - Chile
Mensajes: 14
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: No contar espacios en una palabra

Gracias @andresdzphp se me habia pasado ese detalle :P
  #6 (permalink)  
Antiguo 15/02/2012, 12:58
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años
Puntos: 88
Respuesta: No contar espacios en una palabra

aquí tienes otra forma
Código PHP:
Ver original
  1. $var = '    esto  es        una    prueba     ';
  2. $patron= '/\s{2,}/';
  3. //quitamos los espacios de inicio y final con trim
  4. //luego replazamos los espacios interiores por solo uno
  5. echo $res=preg_replace($patron,' ',trim($var));
  6. echo '<br />';
  7. echo strlen($res);//luego lo contamos
  8. //tambien puedes dejarlo en una sola linea
  9. //echo strlen(preg_replace($patron,' ',trim($var)));
espero te sirva, saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: caracteres, espacios, muro, muro-facebook, palabras
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 05:11.