Foros del Web » Programando para Internet » PHP »

detectar palabras mayusculas

Estas en el tema de detectar palabras mayusculas en el foro de PHP en Foros del Web. hola tengo que hacer una aplicacion que lea un pdf y lo recorra para extraer unas palabras importantes que estan en mayuscula, lo que es ...
  #1 (permalink)  
Antiguo 23/05/2013, 05:08
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 7 meses
Puntos: 1
detectar palabras mayusculas

hola

tengo que hacer una aplicacion que lea un pdf y lo recorra para extraer unas palabras importantes que estan en mayuscula, lo que es la parte de extraer del pdf, lo almaceno en un fichero txt, y aqui viene mi problema, cuando recorro el fichero hago lo siguiente, compruebo caracter a caracter que dicho caracter este en mayusculas, y en caso de ser asi guardo ese caracter en una variable tal que asi:

Código PHP:
Ver original
  1. $fich = fopen("datos".$fechaHoy.".txt","r") or die("Problemas en la apertura");
  2.  
  3. $arrayTitulos = array();
  4.  
  5. while (false !== ($char = fgetc($fich))) {
  6.     //echo "$char\n";
  7.    
  8.     while ($char != " "){
  9.        
  10.         if ( ($char == strtoupper($char) ) && ($char++ == strtoupper($char++))  )
  11.             $char2 += $char.$char++;
  12.     }
  13.     echo($char2);  
  14. }
  15.    
  16. }


haciendo esto falla, lo que yo quiero saber es como puedo ir comprobando caracteres o palabras seria lo ideal que esten en mayuscula


gracias por las posibles respuestas
  #2 (permalink)  
Antiguo 23/05/2013, 07:02
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: detectar palabras mayusculas

No entiendo muy bien ese segundo while.

EN el primero le asignas a $char un carácter del fichero que vas leyendo, y seguirás leyendo caracteres hasta que esa asignación sea false, que significará que se ha termino de leer el fichero, ¿es así?

Entonces el while ($char != " ") no lo entiendo, porque cuando compruebas la condición de ese while siempre vas a tener el primer carácter del fichero dentro de $char no??

Te sale algo como resultado u obtienes un bucle infinito??

Saludo.
  #3 (permalink)  
Antiguo 23/05/2013, 10:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: detectar palabras mayusculas

cambie el codigo tal que asi

Código PHP:
Ver original
  1. $arrayTitulos = array();
  2.  
  3. $token = '';
  4. $j = 0;
  5. $arrayLinea = array();
  6.  
  7. while ( ($current_line = fgets($fich)) !== false ) {
  8.  
  9.     $arrayLinea = str_split($current_line);
  10.    
  11.     for ($i = 0; $i< count($arrayLinea); $i++){
  12.        
  13.         if ($arrayLinea[$i] == strtoupper($arrayLinea[$i]) ){
  14.  
  15.             if ($arrayLinea[$i+3] == strtoupper($arrayLinea[$i+3]) ){
  16.            
  17.                 $token = $current_line;
  18.                
  19.                 //echo($token);
  20.             }
  21.         }
  22.     }
  23.    
  24.     $arrayTitulos[$j] = $token;
  25.         $j++;
  26.         print_r($arrayTitulos);
  27. }


para la primera linea funciona, pero cuando le doy todo el texto (que es bastante grande), empieza a dar estos errores:

notice: undefined offset:

alguien puede ayudarme?
  #4 (permalink)  
Antiguo 23/05/2013, 10:57
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: detectar palabras mayusculas

En la linea 9, donde tienes: $arrayLinea = str_split($current_line);, pienso que podrías utilizar mejor $arrayLinea = explode(" ", $current_line);, ya que con esta función, explode, al cortar la linea por los espacios digamos, vas a obtener en $arrayLinea un array de cada palabra de la linea que leíste del archivo, y con str_split lo que vas a tener es un array con todas las letras. Creo que explode puede funcionarte mejor.

Y en el if para comprobar si es en mayúscula, puedes comparar toda la palabra directamente y te quitas de líos.

Espero que lo hayas entendido.

Un saludo.
  #5 (permalink)  
Antiguo 24/05/2013, 01:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: detectar palabras mayusculas

como puedo comparar toda la palabra entera? puedes explicarmelo con un ejemplo o algo?

gracias
  #6 (permalink)  
Antiguo 24/05/2013, 02:05
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 10 meses
Puntos: 20
Respuesta: detectar palabras mayusculas

Código PHP:
<?php 
$word 
"TesT";

if(
$word === strtoupper($word))
{
    echo 
"All letters are uppercase";
}
else
{
    echo 
"There are lowcase letters";
}
?>
  #7 (permalink)  
Antiguo 24/05/2013, 04:55
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: detectar palabras mayusculas

Cita:
Iniciado por viringas Ver Mensaje
como puedo comparar toda la palabra entera? puedes explicarmelo con un ejemplo o algo?

gracias
Como te explica el compañero bulter está perfecto.

Un saludo.

Etiquetas: mayusculas, 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 11:03.