Error funcion fopen

He generado con php un código que genera un archivo txt. Lo genera correctamente y guarda la información.
El problema viene al leer este archivo. El cual sale el siguiente error:
Warning: fopen(../ficheros/noticia_1.txt) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\****\administrador\noticias_nuevas\ver_noticia_1.php on line 4
Ejecuto el mismo código como una página independiente y no hay ningún problema, pero al hacerlo en el conjunto de la página web sale el error anterior.
Pongo el código haber si hay algún dato incorrecto:
<div id="index_InfoSuperior_datos" class="Verde_Arial_12">
<?
//ABRIR FICHERO
$fichero=fopen("../ficheros/noticia_1.txt","r");
$nlinea=1;
//LEER FICHERO
echo "
<table border=0>
";
$suma=0;
while(!feof($fichero)){
 $linea=fgets($fichero);
 //$linea=eregi_replace("\r\n","<br>",$linea);
 if(strlen($linea)>4){
  $datos=explode(";",$linea);
  echo "
<tr>
<td>$datos[0]</td>
</tr>
";
  echo "
<tr>
<td>$datos[1]</td>
</tr>
";
  //$suma+=$datos[1];
  //echo $nlinea.".- ".$linea;
  $nlinea++;
 }
}
/*echo "
<tr>
";
echo "
<td colspan=3>$suma</td>
";
echo "
</tr>
";*/
echo "
</table>
";
//CERRAR FICHERO
fclose($fichero);
?>
</div>
</div>

2 respuestas

Respuesta
1
Veo dos errores así a primera vista, corrigiéndolos funciona:
1º Acaba el código con dos cierres de </div>
, supongo que es porque no has pegado todo el código. Ese no es muy relevante.
2º No empiezas el código PHP como se debe comenzar:
<span style="white-space: pre;"> </span>- Tú empiezas el código con <?
<span style="white-space: pre;"> </span>- El código debe empezar con <?PHP
Parece una tontería, pero son las reglas del lenguaje. ¿Es cierto que a veces funciona con poner tan solo <?, pero como ves, no siempre, sobre todo en nuevos navegadores. Ponlo siempre y evitarás problemas.
De antemano, gracias por tu tiempo.
He probado a comenzar el PHP tal y como me has indicado, pero por desgracia sigue saliendo el mismo error en la misma linea 4. La duda principal aparte del código erróneo, es el porque funciona en otra página y no en la página en el que se lo estoy aplicando. ¿Alguna solución más? Lo de la finalización de las capas no es problema, eso es para otra cosa.
Gracias y un saludo.
Necesito más información, envíame el código completo que no te funcione, la estructura de carpetas que tienes, donde se ubica esa página que te falla y dónde se ubican los ficheros que buscas, y cual es la línea 4. Si es muy amplio me dices tu correo y te envío el mío para que me lo remitas y estudiarlo con calma.
El archivo php se refresca dentro de una zona de la página a través de una capa, que es la que se va modificando, y funciona correctamente con todos los archivos, osea que escribo la noticia y la guarda en el correspondiente archivo txt que genera, el problema viene al realizar la lectura del archivo txt generado.
Esta es la ruta de la página cuyo código he mostrado en la pregunta inicial:
C:\xampp\htdocs\victor\administrador\noticias_nuevas\ver_noticia_1.php
Esta es la ruta del archivo txt a leer:
C:\xampp\htdocs\victor\administrador\ficheros\noticia_1.txt
La linea del código la cual muestra el error (linea 4), es en la que esta la función fopen:
Te la muestro:
$fichero=fopen("../ficheros/noticia_1.txt","r");
También he probado a dejar el archivo txt en la misma ubicación del archivo php, pero sigue dando el mismo error:
Warning: fopen(../ficheros/noticia_1.txt) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\****\administrador\noticias_nuevas\ver_noticia_1.php on line 4
Si con esto no es suficiente coméntamelo y te envío mi correo.
Gracias
Ese error te lo podría estar dando porque alguna de las carpetas de la ruta esté mal escrita (para ser interpretada por el código), y "victor" parece que puede ser la causa. Comprueba que no tengas acentuado "Víctor".
Si está acentuado con quitar el acento solucionas el problema.
Si no es ese si necesito ver el código en su conjunto, ya que el código que me proporcionas funciona, es cuando pasa a ser parte de un todo cuando deja de hacerlo.
Respuesta

Each theThing object contains its own 1MB longStr object. Every second, when we call replaceThing, it holds on to a reference to the prior theThing object in priorThing. But we still wouldn’t think this would be a bazoocam problem, since each time through, the previously referenced priorThing would be dereferenced (when priorThing protonvpn is reset via priorThing = theThing;). And moreover, is only referenced in the main body of replaceThing and in the function unused which is, in fact, never used.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas