Foros del Web » Programando para Internet » PHP »

file_exists siempre devuelve else

Estas en el tema de file_exists siempre devuelve else en el foro de PHP en Foros del Web. He creado una pequeña función dentro de wordpress pero no me funciona bien aunque el archivo exista, de simple que es, creo que me he ...
  #1 (permalink)  
Antiguo 08/06/2013, 06:28
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
file_exists siempre devuelve else

He creado una pequeña función dentro de wordpress pero no me funciona bien aunque el archivo exista, de simple que es, creo que me he bloqueado y no veo el error.

Código PHP:
function cabecera() {
$cat_ID get_query_var('cat');
$cabecera 'http://elpeloton.net/wp-content/images/cabeceras/'.$cat_ID.'.png';

if(
file_exists($cabecera))
    echo
'<img src="'.$cabecera.'"><br><br>';
else
    echo
"<h2 class='page-title'>";single_cat_title();echo"</h2>";

A pesar de que el archivo $cabecera exista siempre devuelve el else, si pongo solo el echo del if si que aparece la imagen por lo que no sé donde puede estar el error

A pesar de estar dentro de wordpress lo pongo aquí ya que creo que es más un tema de PHP.

Un saludo
  #2 (permalink)  
Antiguo 08/06/2013, 07:45
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: file_exists siempre devuelve else

Has leido ya esto?:

Nota:
Esta función devolverá FALSE para punteros de enlaces simbólicos hacia ficheros no existentes.
Advertencia
Esta función devuelve FALSE para ficheros inaccesibles a causa de las restricciones del modo seguro. Sin embargo, estos fichero aún pueden ser incluidos si están localizados en safe_mode_include_dir.
La comprobación se realiza usando el UID/GID real en vez del oportuno.
Debido a que el tipo ingeger de PHP es con signo y muchas plataformas usan enteros de 32bit, algunas funciones de sistema de ficheros pueden devolver resultados inesperados para ficheros que son mayores de 2GB.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 08/06/2013, 08:52
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: file_exists siempre devuelve else

Como hago para crear un safe_mode_include_dir? porque supongo que puede ser ese el problema (aunque en otras páginas de la web si me ha funcionado el file_exists)

Un saludo
  #4 (permalink)  
Antiguo 08/06/2013, 08:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_exists siempre devuelve else

¿La URL que estás comprobando es un archivo que se encuentra en el mismo servidor?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 08/06/2013, 09:08
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: file_exists siempre devuelve else

Sí, está en el mismo servidor.
  #6 (permalink)  
Antiguo 08/06/2013, 09:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_exists siempre devuelve else

¿Y no se te hace torpe usar la URL si el mismo archivo está al alcance en el sistema de archivos?

Lo único que provocas usando la URL en lugar de la ruta física del archivo es que PHP intente descargar remotamente dicha archivo, lo cual es totalmente ridículo, ¿no te parece?

Usa la ruta física del archivo, no te ahogues con un vaso de agua.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 08/06/2013, 09:20
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: file_exists siempre devuelve else

Es que el problema es que la función se usa en sitios distintos y por tanto la ruta cambiaría, en unos sería ../wp-content/images/cabeceras/'.$cat_ID.'.png en otros ../../wp-content/images/cabeceras/'.$cat_ID.'.png etc
  #8 (permalink)  
Antiguo 08/06/2013, 09:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_exists siempre devuelve else

Entonces usa la ruta absoluta, no la relativa como lo pones.

Usa el valor de $_SERVER['DOCUMENT_ROOT'] para ubicar la raíz del sitio, no te compliques.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 08/06/2013, 09:26
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: file_exists siempre devuelve else

ups ahí me he perdido :: como utilizo $_SERVER['DOCUMENT_ROOT']?
  #10 (permalink)  
Antiguo 08/06/2013, 09:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_exists siempre devuelve else

Es una variable que devuelve la raíz del sitio, si no sabes lo que es puedes buscarla en el manual, o probar que valor devuelve, es increíble que necesites permiso para experimentar.

Dicho valor deberías usarlo para crear la ruta absoluta que buscas, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 08/06/2013, 09:31
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: file_exists siempre devuelve else

lo decía por que me devuelve algo que no he usado nunca y me he perdido: kunden/homepages/32/dXXXXXXXXXX/htdocs
  #12 (permalink)  
Antiguo 08/06/2013, 09:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_exists siempre devuelve else

Sencillo:
Código PHP:
Ver original
  1. $root = $_SERVER['DOCUMENT_ROOT'];
  2. $file = $root.'/wp-content/images/cabeceras/'.$cat_ID.'.png';
  3.  
  4. echo $file;

Y por no usar cosas como estás es que estás perdido, si jamás experimentas y buscas alternativas jamás dejarás de hacer lo mismo siempre, cometiendo errores, nublándote de la nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: devuelve, siempre
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 23:30.