Foros del Web » Programando para Internet » PHP »

Problema al leer archivo local

Estas en el tema de Problema al leer archivo local en el foro de PHP en Foros del Web. Buenas Tengo un problema al leer un archivo,en algunas ocaciones file_get_contents devuelve false,igual que con fopen. Con esta negrada me funciona pero es una negrada.... ...
  #1 (permalink)  
Antiguo 13/05/2014, 22:43
Avatar de ema_cs_2010  
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema al leer archivo local

Buenas

Tengo un problema al leer un archivo,en algunas ocaciones file_get_contents devuelve false,igual que con fopen.

Con esta negrada me funciona pero es una negrada....

Código PHP:
if(file_exists($chatbox_file['other']))
    while(!(
$others_data file_get_contents($chatbox_file['other']))) { } 
El problema solo me pasa en el webhost (donweb ex rattatec).Alguien tiene idea cual puede ser el problema ?.
No me salta ningun error/warning

gracias
  #2 (permalink)  
Antiguo 14/05/2014, 01:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema al leer archivo local

Repasa el manual la función retorna falso en caso de error al leer el fichero (generalmente que el fichero no exista) o cuando el contenido del fichero es interpretable como falso (generalmente cuando contenga un 0).

Manual

Cita:
Advertencia

Esta función puede devolver el valor booleano FALSE, pero también puede devolver un valor no booleano que se evalúa como FALSE. Por favor lea la sección sobre Booleanos para más información. Use el operador === para comprobar el valor devuelto por esta función.
Código PHP:
Ver original
  1. $others_data = file_get_contents($chatbox_file['other']);
  2. if($others_data !== false){
  3.    echo "Esta función devuelve los datos leídos";
  4. }else{
  5.    echo "Esta función devuelve FALSE en caso de error";
  6. }

Soló entrará en el condicional cuando realmente no sea falso.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 14/05/2014 a las 04:24
  #3 (permalink)  
Antiguo 14/05/2014, 12:25
Avatar de ema_cs_2010  
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema al leer archivo local

Me devolvía false siendo que el fichero existe y que el contenido es un string de un array usando serialize
  #4 (permalink)  
Antiguo 14/05/2014, 13:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al leer archivo local

Cita:
Iniciado por ema_cs_2010 Ver Mensaje
Me devolvía false siendo que el fichero existe [...]
¿Tratas de decir que PHP miente e inventa los resultados que obtienes?

Si el archivo no existe devuelve FALSE, tan simple y tan obvio, ¿por qué te engañas a ti mismo?

En todo caso la función para verificar la presencia del archivo es is_file(), dado que file_exists() funciona tanto con carpetas como archivos, revisa el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/05/2014, 13:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema al leer archivo local

Cita:
...función retorna falso en caso de error al leer el fichero (generalmente que el fichero no exista)
Recuerda que no existir o no estar donde dices que esta para la función seria lo mismo. Es decir no solo debe existir el fichero si no que le debes pasar el PATH correcto, si no no lo encontrará.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 15/05/2014 a las 01:05
  #6 (permalink)  
Antiguo 14/05/2014, 15:01
Avatar de ema_cs_2010  
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema al leer archivo local

Sigue pasando lo mismo
Código PHP:
// $chatbox_file['other'] //tiene un valor constante

if(is_file($chatbox_file['other']))
{
    
$others_data file_get_contents($chatbox_file['other']);
    if(
$others_data !== false)
        
$others_data unserialize($others_data);
    else 
file_put_contents("error.txt""...");
}
else if(!
is_array($others_data)) $others_data = array( 'flood_time' => 0'flood_userid' => 0,  'flood_count' => 0'global_id' => );
// ... otras cosas que pueden modificar el array ...
file_put_contents($chatbox_file['other'], serialize($others_data)); 
cada tanto se crea "error.txt" y se reinicia el array

Etiquetas: local
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 22:12.