Foros del Web » Programando para Internet » PHP »

Problema con fopen()

Estas en el tema de Problema con fopen() en el foro de PHP en Foros del Web. hola, tengo un problema con fopen, no me puede abrir el archivo. tengo un .txt con links en cada linea, entonces lo recorro y por ...
  #1 (permalink)  
Antiguo 21/01/2006, 11:39
 
Fecha de Ingreso: enero-2006
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Problema con fopen()

hola, tengo un problema con fopen, no me puede abrir el archivo.
tengo un .txt con links en cada linea, entonces lo recorro y por cada linea que agarro (un link), intento con fopen abrir ese link.

esa parte del codigo seria algo asi.(el .txt ya esta abierto y es $fp1)

$linkstring=fgets($fp1,4096);
$fp2=fopen("$linkstring","r");

me tira este error.

Warning: fopen(C:/Gestion.htm ): failed to open stream

(c:/gestion.htm seria el primer link dentro del .txt)

estuve leyendo y llegue a la conclusion que al fopen no le puedo dar un $variable, si no que le tengo que poner toda la ruta... pero en mi caso no se como hacerlo, porque la ruta la saco de otro archivo, la cual la meto en una variable y despues la que me queda es leer dicha variable.

en fin si alguien me puede dar algun tip sugerencia o consulta desde ya muchas gracias !

daniel shields
  #2 (permalink)  
Antiguo 21/01/2006, 12:42
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
si el código es el mismo que muestras, de entrada tienes un error: cuando se pasan variables a las funciones NUNCA van entre comillas.

Puedes perfectamente hacer
fopen($var1.$var2.$varN, "r");

¿cómo está el tema de los permisos de archivo?


Saludos.
  #3 (permalink)  
Antiguo 21/01/2006, 14:04
 
Fecha de Ingreso: enero-2006
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola alvlin, te cuento que efectivamente el codigo lo transcribi mal.
tengo pueso
fopen($linkstring,"r");

en cuanto a los permisos no tengo mucha idea... soy muy nuevo en php, podes orientarme un poquito ?

muchas gracias !
  #4 (permalink)  
Antiguo 21/01/2006, 14:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Imagino que estás con Apache/PHP sobre Win, no?

los permisos de archivo se usan en sistemas multiusuario, para separar quiénes pueden ver/escribir en cuáles archivos.
En Windows lo implementan los sistemas de archivos NTFS.
Si no tienes los permisos suficientes, no puedes acceder a un archivo.

Por otro lado, no tengo muy claro el comportamiento de Apache/PHP sobre Win, sin embargo siempre es recomendable usar la capitalización exacta para archivos y carpetas, no es lo mismo c:\APACHE que c:\apache.

Además, tienes funciones de php que devuelven una matriz con todas las líneas del archivo referenciado, quizás te sea más sencillo que usar fgets.

Y para terminar, haz la prueba de poner los archivos en la carpeta donde alojas al sitio, a ver si te da el mismo error.

Saludos.
  #5 (permalink)  
Antiguo 21/01/2006, 14:27
 
Fecha de Ingreso: enero-2006
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola alvlin.

te cuento que sigue tirando el mismo error, alojando el archivo donde esta todo el site.
estoy con apache/php y el tema de la ruta en cuanto a mayusculuas y minusculas lo tengo tenido en cuenta y esta todo identico.

no entiendo bien que puede pasar, pero me tira error en al linea en donde esta el 2do fopen.
intente mostrar la linea que recoge fgets para ver si habia algun error y no. la toma perfecto, pero simplemente despues no la puede abrir.

saludos y gracias por tu ayuda
  #6 (permalink)  
Antiguo 21/01/2006, 14:35
 
Fecha de Ingreso: enero-2006
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola !

ya lo pude solucionar, use la funcion trim para eliminar espacios en blanco y lo tomo bien... es raro porque yo no tenia ningun espacio en blanco ni al principio ni al final segun lo que supone que hace esa funcion, pero bueno, el tema es que abrio el archivo y ahora puedo seguir adelante.
seguramente en pocos tno en estm olestando de vuelta ya que soy muy bueno en estos y tengo que hacer todo un buscador.

a modo de consulta, que funcion puedo usar para buscar una palabra en una cadena ?

gracias !
  #7 (permalink)  
Antiguo 21/01/2006, 14:44
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
estás seguro de que no tenía espacios? mira el mensaje de error que pusiste en el 1º mensaje.....

Y como respuesta, fíjate en www.php.net/strings
creo que lo que buscas es strpos().


Saludos.
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 12:09.