Foros del Web » Programando para Internet » PHP »

fopen raro

Estas en el tema de fopen raro en el foro de PHP en Foros del Web. Hola Gente hoy me pasa algo muy raro intento crear un archivo txt sin complicaciones @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <? $content = 'lalala' ...
  #1 (permalink)  
Antiguo 17/12/2014, 10:40
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
fopen raro

Hola Gente hoy me pasa algo muy raro
intento crear un archivo txt sin complicaciones

Código PHP:
Ver original
  1. <?
  2. $content='lalala';
  3. $destinoThumbail = "upload/images/"
  4.         if (!is_dir($destinoThumbail)) {
  5.             mkdir($destinoThumbail, 0777);
  6.         }
  7.         $origenLocal = $destinoThumbail . $filename;
  8.         $strlength = strlen($content); //gets the length of our $content string.
  9.         $create = fopen($origenLocal, "w"); //uses fopen to create our file.
  10.         $write = fwrite($create, $content, $strlength); //writes our string to our file.
  11.         $close = fclose($create); //closes our file
  12. ?>
esto me crea el directorio en $destinoThumbail y el txt ahi dentro

el problema es que tambien crea el archivo en el mismo directorio donde ejecuto el script!!
o sea que me crea el txt duplicado en:
/public/
/public/upload/images/

y si al final elimino el archivo
Código PHP:
Ver original
  1. unlink($create);
solo elimina el archivo que creó en /public/upload/images/


qué demonios puede ser el problema???
  #2 (permalink)  
Antiguo 17/12/2014, 10:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: fopen raro

El problema es obvio: la ruta actual (current working directory) se establece a partir de la ubicación del script en ejecución.

Eso todos lo saben, y PHP siempre ha tenido este comportamiento, es curioso que jamás lo hayas notado.

Ahora, seguramente tu idea es escribir siempre a partir de la raíz del sitio, y tiene sentido.

Sin embargo debes ser explícito acerca de la ruta a crear, dado que "upload/images/" es una ruta relativa, y siempre será relativa de acuerdo al script en curso.

Debes usar una ruta absoluta, la raíz del sitio se puede obtener así:
Código PHP:
Ver original
  1. $path = $_SERVER['DOCUMENT_ROOT'] . '/upload/images/';

¿Cual fopen raro?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/12/2014, 10:52
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: fopen raro

claro , lo que no entiendo es lo qué lo duplica???

ok, pero no siempre $_SERVER['DOCUMENT_ROOT'] me va a servir por que el proyecto puede estar en cualquier lugar del servidor o en diferentes servidores
  #4 (permalink)  
Antiguo 17/12/2014, 10:54
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: fopen raro

le agregué el _SERVER['DOCUMENT_ROOT'] y los sigue duplicando
  #5 (permalink)  
Antiguo 17/12/2014, 11:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: fopen raro

Cita:
Iniciado por Patriarka Ver Mensaje
le agregué el _SERVER['DOCUMENT_ROOT'] y los sigue duplicando
Sería bueno ver el código ya corregido, adivinar va a llevar su tiempo.

Cita:
ok, pero no siempre $_SERVER['DOCUMENT_ROOT'] me va a servir por que el proyecto puede estar en cualquier lugar del servidor o en diferentes servidores
DOCUMENT_ROOT siempre será relativo a dónde instales tu aplicación, así que siempre será la ruta correcta.

Por favor consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/12/2014, 11:18
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: fopen raro

es el mismo script
Código PHP:
Ver original
  1. $origenLocal = $_SERVER['DOCUMENT_ROOT'] . "/" . $destinoThumbail . $filename;
  2.         $strlength = strlen($content); //gets the length of our $content string.
  3.         $create = fopen($origenLocal, "w"); //uses fopen to create our file.
  4.         $write = fwrite($create, $content, $strlength); //writes our string to our file.
  5.         $close = fclose($create); //closes our file
  6.         unlink($create);
  #7 (permalink)  
Antiguo 17/12/2014, 11:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: fopen raro

Pues nada, hago la misma prueba y jamás duplica nada, es posible que escribas mal la ruta después del DOCUMENT_ROOT, no sé.

¿Podrías depurar los valores que se utilizan y mostrarnos?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: fopen, raro
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 09:20.