PHP+FICHEROS error :S

egrojcire

Hola gente, necesito ayuda para un problema de programación con ficheros para un proyecto de clase de programación web. Quiero cargar un fichero y visualizarlos en la pagina index.php, por lo que le introducí el siguiente codigo:

for(;$final>$start;$start++ && $id--)
{
$file_handle = fopen("noticias/$id/$id", "r");
$line = fpassthru($file_handle);
print "<p>$line</p>";
fclose($file_handle);
}

el for es para que me publique un máximo de 5 entradas dentro de la pagina index, en concreto las 5 últimas; también probé con esto pero acabo con bucle infinito XD:

for(;$final>$start;$start++ && $id--)
{
$file_handle = fopen("noticias/$id/$id", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
print "<p>$line</p>";
}
fclose($file_handle);
}

Si alguien puede ayudarme gracias ^^

NeB1

Realmente estás abriendo el fichero desde el principio las dos veces, así que dificil que cojas las 5 últimas. Espero además que cada entrada sea una linea del fichero, por fgets coge una linea. una forma sencilla por ejemplo es:

$fp=fopen('fichero','r');

while(!feof($fp)){
    $arrayEntradas[]=fgets($fp);
}

rsort($arrayEntradas);

for($i=0;$i<5;$i++){
    print($arrayEntradas[$i]);
}

Si quieres abrir el fichero y posicionar el puntero del fichero al final del archivo y quieres poder leerlo tienes que hacer "fopen('fichero','a+');"

El problema es que no hay ninguna funcion preestablecida que lea hacia atras las lineas (creo), tienes que usar fseek y mucha paciencia.

egrojcire

lo probare haber y si no puedo lo cargare en la base de datos. Lo quería hacer mediante ficheros por hacer algo nuevo que no me habían enseñado, pero a una a malas como el proyecto es para el lunes, ya veré si consigo hacerlo funcionar ^. Muxas gracias :qq: y ya comentare como me fue :si:

edit1: con $id tengo almacenadas la cantidad de noticias, por eso pongo $id-- y así ir descontando en el bucle =P realmente debería de pillar desde la ultima.

NeB1

pues no entiendo esta linea:

fopen("noticias/$id/$id"...

será que gastas algo que no he gastado nunca... o tienes cada noticia en ficheros separados nombrados de la forma 1,2,3,4,5 ?

egrojcire

Si estaban guardados en números dentro de una carpeta con el numero de la noticia guardada segun el id automático que le da la base de datos.

Bueno de todas formas hoy ha sido el día elegido en el que he tenido que entregar el proyecto asi que ayer domingo de buena mañana, como tenia muchísimos errores y muchísimas cosas a medio hacer(es que hacer una web bien hecha sin tener experiencia suficiente en semana y media pues...) bueno empecé desde cero pagina por pagina y función por función partiendo de la base del que ya tenia hecho, lo de los ficheros tuve que dejarlo ya que no podía entregar un trabajo hecho a mitad :S ya que tenia muchos problemas con los permisos de los ficheros y ha veces iba otras no(según donde te encontrabas) y como tenia que presentarlo con un manual en clase haciendo la instalación y todo, opte por hacerlo como todo el mundo, con bases de datos, lo de los archivos lo dejé comentado y haber si lo consigo arreglar(simplemente por orgullo XD) pero cuando termine los dos últimos exámenes que me quedan el miércoles y mañana (además de pegarme la fiesta padre XD juasjausjaus) el viernes contare como ha ido el avance =P

EDIT: nada, le he probado a meter esto directo:

$fp=fopen('noticia/1.txt','r');
$t=0;
while(!feof($fp)){
$arrayEntradas[$t]=fgets($fp);
$t++;
}

for($i=0;$i<$t;$i++){
print"$arrayEntradas[$i]";
}
y tampoko, podria ser un problema de permisos? he probado a cambiarselo y tampoko, no se si eske los puse mal o algo ¿0_o?

Usuarios habituales

  • egrojcire
  • NeB1