Foros del Web » Programando para Internet » PHP »

Leer rutas a otros archivos en un archivo txt por lineas no me funciona

Estas en el tema de Leer rutas a otros archivos en un archivo txt por lineas no me funciona en el foro de PHP en Foros del Web. Saludos chicos. Tengo aquí un problema extraño de verdad. Tengo un archivo con un listado de direcciones. Ej: Código: "/posts/XTemas-pensamientos.txt" "/posts/XTemas-curiosidades.txt" Y luego tengo en ...
  #1 (permalink)  
Antiguo 08/06/2006, 11:38
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 11 años, 9 meses
Puntos: 2
Leer rutas a otros archivos en un archivo txt por lineas no me funciona

Saludos chicos.

Tengo aquí un problema extraño de verdad.

Tengo un archivo con un listado de direcciones. Ej:

Código:
"/posts/XTemas-pensamientos.txt"
"/posts/XTemas-curiosidades.txt"
Y luego tengo en php:

Código:
$ArchTemas=fopen("ruta del archivo del listado",  "r");
$ruta = fgets($ArchTemas);
$fpAux = fopen($ruta, "r");
for ($j = 0; $j<5 ; $j++)
{
$txt = fgets($fpAux); 
print $txt."<br>";
}
fclose($fpAux);

Pues me da el siguiente error:

Warning: fopen("/posts/XTemas-pensamientos.txt" ): failed to open stream: No such file or directory in (...)/blog/blog.php on line 38

y por consiguiente:

Warning: fgets(): supplied argument is not a valid stream resource in (...)blog/blog.php on line 41

luego muchas veces por el for.
---

Bien. Pues no entiendo. He devuelto con print lo que leía, y por supuesto lee cada linea, y guarda la ruta, con los "", y todo eso.

¿porque demonios funciona cuando en vez de poner esto pongo $ruta = "ruta" antes y no funciona leyendolo de un archivo??

Y puedo aseguraros que el archivo esta en el mismo directorio que blog.php, y en la carpeta /posts/


Gracias por la ayuda, de antemano.
  #2 (permalink)  
Antiguo 08/06/2006, 12:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La función file() (www.php.net/file) te lee un archivo línea a línea generando un array. Se considera "línea" a un texto seguido de un salto de línea (\n o \r o \n\r) .. o eso es lo que identifica dicha función para considerarlo como "línea" lo que va leyendo de tu archivo de texto plano.

Otro detalle es que tus rutas apuntan a / .. al raiz de ese servidor .. Justamente en esos "puntos suspensivos" que eliminastes la ruta de tu servidor es donde -se vé- si realmente ese archivo lo tienes en el "raiz!" o no .. No confundas el "raiz" que tu vés al acceder por FTP a tus archivos o de tu "Document Root" con lo que es el raiz del servidor en sí.

Al dato que lees línea a línea .. deberías concatenarle:
$_SERVER['DOCUMENT_ROOT'] quedando algo tipo:

Código PHP:
$txt fgets($_SERVER['DOCUMENT_ROOT'].$fpAux); 
Pero .. todo esto depende de donde esté ubicado realmente tu "document root" en ese servidor y de donde cuelgan tus archivos .. que seguro que no será de ese "raiz" que tu dices ser en tus ejemplos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 09/06/2006, 14:06
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 11 años, 9 meses
Puntos: 2
Cita:
Iniciado por Cluster
Otro detalle es que tus rutas apuntan a / .. al raiz de ese servidor .. Justamente en esos "puntos suspensivos" que eliminastes la ruta de tu servidor es donde -se vé- si realmente ese archivo lo tienes en el "raiz!" o no .. No confundas el "raiz" que tu vés al acceder por FTP a tus archivos o de tu "Document Root" con lo que es el raiz del servidor en sí.

Al dato que lees línea a línea .. deberías concatenarle:
$_SERVER['DOCUMENT_ROOT'] quedando algo tipo:

Código PHP:
$txt fgets($_SERVER['DOCUMENT_ROOT'].$fpAux); 
Pero .. todo esto depende de donde esté ubicado realmente tu "document root" en ese servidor y de donde cuelgan tus archivos .. que seguro que no será de ese "raiz" que tu dices ser en tus ejemplos.

Un saludo,
mmm. MM..Ya entiendo. Pero ... el document root te devuelve... la posicion del archivo que se lee, o del archivo desde el que se llama?.

No entindo muy bien, lo siento: Esque no entiendo porque si pongo la ruta antes, igual : posts/pepe.txt este lo abre bien. La direccion del servidor completa es muy larga, si, pero todo lo que necesito esta dentro de esa carpeta, porqué he de escribir toda la ruta completa?.

Esque me parece tan extraño que lo que lea , aunque sea lo mismo que lo que pueda poner antes, si lo lee no sale bien, pero si lo meto por variable, el mismo texto, no vale.

Lo que no he entendido ha sido lo de los puntos suspensivos y la ruta con /.


Perdona :_
y
Gracias :)
  #4 (permalink)  
Antiguo 09/06/2006, 15:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La direccion del servidor completa es muy larga, si, pero todo lo que necesito esta dentro de esa carpeta, porqué he de escribir toda la ruta completa?.

Justamente $_SERVER['DOCUMENT_ROOT'] te devuelve esa ruta .. hazle un echo y lo veras.

A lo sumo NO pongas el primer / de la ruta dada cuando guardas tus archivos:
/posts/XTemas-pensamientos.txt -> así te referencias al "raiz" de ese servidor .. a no ser que uses ./ (con el punto de "desde este directorio .." o un ../ para subir una rama hacia arriba de tu estructura de directorios).

usa sólo
post/XTemas-pensamientos.txt


Y si todos los archivos caen bajo un mismo directorio .. puedes omitir esa ruta en el archivo de texto plano que generas pues es "Fija" .. puedes concatenarla en forma directa:

Código PHP:
$txt fgets("post/".$fpAux); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 10/06/2006, 00:58
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 11 años, 9 meses
Puntos: 2
oh... gracias mil
estupendo. Pues entonces es lo que tenía. Lo añadí el / para saber que pasaba. Voy a ver ahora.


De todas formas... me estan bajando la moral por otro post, y al final todo el sistema de archivos que monté no funciona ni de coña. U_U
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 01:59.