Foros del Web » Programando para Internet » PHP »

No contar espacios dobles o superiores en contador de palabras

Estas en el tema de No contar espacios dobles o superiores en contador de palabras en el foro de PHP en Foros del Web. Buenas, he realizado un contador de palabras muy rudimentario, y me gustaría perfeccionalo mas. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php //iniciamos codigo php if ...
  #1 (permalink)  
Antiguo 19/10/2014, 10:23
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
No contar espacios dobles o superiores en contador de palabras

Buenas, he realizado un contador de palabras muy rudimentario, y me gustaría perfeccionalo mas.

Código PHP:
Ver original
  1. <?php
  2. //iniciamos codigo php
  3. if(isset($_POST["enviar"])) {
  4. $texto = trim($_POST['texto']);
  5. $contando = explode(" ",$texto);
  6. $total = count($contando);
  7. $caracteres = strlen($texto);
  8. if($caracteres == 0) {
  9.     $total = 0;
  10. }
  11. }
  12. ?>

Como véis quita los espacios en blanco del principio y del final de la string, pasa la string a una array con explode y cuenta los valores del array.

Funciona pero me gustaría que dejara de lado al contar los espacios dobles, triples, y superiores... pero no se como plantearlo de una manera sencilla y eficaz
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #2 (permalink)  
Antiguo 19/10/2014, 11:54
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: No contar espacios dobles o superiores en contador de palabras

antes de contar los datos recorre el array y elimina los espacios en blanco...

Código PHP:
Ver original
  1. $contando = explode(" ",$texto);
  2. foreach($contando as $key=>$val){
  3.     if(empty($val)){
  4.         unset($contando[$key]);
  5.     }
  6. }
  7. $total = count($contando);
  #3 (permalink)  
Antiguo 19/10/2014, 12:22
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: No contar espacios dobles o superiores en contador de palabras

Perfecto, luego retoqué para que mostrara correctamente los caracteres:
Código PHP:
Ver original
  1. if(isset($_POST["enviar"])) {
  2. $texto = trim($_POST['texto']);
  3. $contando = explode(" ",$texto);
  4. foreach($contando as $key=>$val){
  5.     if(empty($val)){
  6.         unset($contando[$key]);
  7.     }
  8. }
  9. $total = count($contando);
  10. $array_a_string = implode($contando," ");
  11. $caracteres = strlen($array_a_string);
  12. if($caracteres == 0) {
  13.     $total = 0;
  14. }
  15. }

Mil gracias ;)
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #4 (permalink)  
Antiguo 19/10/2014, 14:09
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 8 meses
Puntos: 96
Respuesta: No contar espacios dobles o superiores en contador de palabras

Si solo quieres contar las palabras puedes usar esta funcion
http://php.net/manual/es/function.str-word-count.php
Tiene varios parametros interesantes
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.

Etiquetas: contador, dobles, espacios, 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 16:08.