Foros del Web » Programando para Internet » PHP »

Leer .txt

Estas en el tema de Leer .txt en el foro de PHP en Foros del Web. hola amigos.. quiero saber como puedo hacer para mostrar los ultimos 2 registros de un archivo .txt.. usando este code: Código PHP: <? $fichero  =  ...
  #1 (permalink)  
Antiguo 25/07/2003, 10:52
Avatar de dooky  
Fecha de Ingreso: diciembre-2002
Ubicación: echo$REMOTE_ADDR;
Mensajes: 493
Antigüedad: 15 años
Puntos: 0
Leer .txt

hola amigos.. quiero saber como puedo hacer para mostrar los ultimos 2 registros de un archivo .txt..

usando este code:
Código PHP:
<?

$fichero 
file("archivo.txt"); 
$largo sizeof($fichero); 
$largo $largo 1

for(
$i=$largo $i>-$i--) { 

$libro explode("|"$fichero[$i]); 

if(
$accion!=="ver"){ 

echo 
""




?>


Saludos..
__________________
Eduardo Toloza
SatisFactor.io - NPS
  #2 (permalink)  
Antiguo 25/07/2003, 11:35
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 14 años, 7 meses
Puntos: 0
Hola, creo que así:

Código PHP:
if($accion!=="ver"){ ¡
echo "Registro uno: $libro[1]"
echo 
"Registro dos: $libro[2]";

Un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #3 (permalink)  
Antiguo 25/07/2003, 11:46
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Por que no usas array_reverse(); ?
__________________
Manoloweb
  #4 (permalink)  
Antiguo 25/07/2003, 11:47
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 14 años, 7 meses
Puntos: 0
Me dices a mi???
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #5 (permalink)  
Antiguo 25/07/2003, 11:50
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 14 años, 7 meses
Puntos: 0
Como seria así:

Código PHP:
<?

$fichero 
file("archivo.txt"); 
$largo sizeof($fichero); 
$largo $largo 1

for(
$i=$largo $i>-$i--) { 
$libro array_reverse ($fichero);
$libro explode("|"$fichero[$i]); 

if(
$accion!=="ver"){ 
echo 
"Registro uno: $libro[1]"
echo 
"Registro dos: $libro[2]";



?>
Así???

Un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #6 (permalink)  
Antiguo 25/07/2003, 11:55
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 14 años, 7 meses
Puntos: 0
Bueno abria que cambiar eta linea:
Código PHP:
$libro explode("|"$libro[$i]); 
Me la comi, un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #7 (permalink)  
Antiguo 25/07/2003, 12:17
Avatar de dooky  
Fecha de Ingreso: diciembre-2002
Ubicación: echo$REMOTE_ADDR;
Mensajes: 493
Antigüedad: 15 años
Puntos: 0
creo que no me entiendieron.. miren lo que quiero hacer es lo siguiente:

tengo el guardar.php
Código PHP:
<?
$incluir
="$nombre|$url|$mensaje\n"
$abrir fopen("mensajes.txt""a+"); 
flock($abrir,2); 
$fw fwrite($abrir$incluir); 
fclose($abrir); 
echo 
"";
?>
Y quiero que al añadir esos registros (nombre, url, mensaje) cuando quiera mostrarlos solo vea los dos ultimos agregados entienden?

Y con este archivo lo leo pero me muestra todos los registro.. No puedo hacer un limite?

leer.php

Código PHP:
<?

$fichero 
file("archivo.txt"); 
$largo sizeof($fichero); 
$largo $largo 1

for(
$i=$largo $i>-$i--) { 

$libro explode("|"$fichero[$i]); 

if(
$accion!=="ver"){ 

echo 
""




?>
Adios
__________________
Eduardo Toloza
SatisFactor.io - NPS
  #8 (permalink)  
Antiguo 25/07/2003, 12:22
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 14 años, 7 meses
Puntos: 0
Hola pues en guardar.php pones esto así:
Código PHP:
$incluir="$nombre|$url|$mensaje#\n"
Y en leer.php pones esto así:
Código PHP:
$libro explode("#"$fichero[$i]); 
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #9 (permalink)  
Antiguo 25/07/2003, 12:24
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
No entiendo bien como es que muestras los registros, pero aqui te va la idea

Código PHP:
<?
$fichero 
file("archivo.txt"); 
$largo sizeof($fichero); 
$largo $largo 1
$max=5// Cantidad de registros que quieres mostrar
$vuelta=1;

for(
$i=$largo $i>-$i--) { 

if (
$vuelta==$max) {
break;
} else {

//----------------------------------------------------------
//Aqui pones tu codigo que muestra los registros
//----------------------------------------------------------

$vuelta++;
}


?>
__________________
Manoloweb
  #10 (permalink)  
Antiguo 25/07/2003, 12:33
Avatar de dooky  
Fecha de Ingreso: diciembre-2002
Ubicación: echo$REMOTE_ADDR;
Mensajes: 493
Antigüedad: 15 años
Puntos: 0
no me funciona..
__________________
Eduardo Toloza
SatisFactor.io - NPS
  #11 (permalink)  
Antiguo 25/07/2003, 12:35
Avatar de dooky  
Fecha de Ingreso: diciembre-2002
Ubicación: echo$REMOTE_ADDR;
Mensajes: 493
Antigüedad: 15 años
Puntos: 0
oh lo vere manolo grax..creo que tu me entendiste.
__________________
Eduardo Toloza
SatisFactor.io - NPS
  #12 (permalink)  
Antiguo 25/07/2003, 12:43
Avatar de dooky  
Fecha de Ingreso: diciembre-2002
Ubicación: echo$REMOTE_ADDR;
Mensajes: 493
Antigüedad: 15 años
Puntos: 0
SIII!!! por fin.. xD Gracias pino por tu ayuda.. Y muchas Gracias a ti manoloweb!! te pondre en los creditos de mi scripts jeje

Aqui les dejo el codigo por si alguien lo necesita:
Código PHP:
<?
$fichero 
file("mensajes.txt"); 
$largo sizeof($fichero); 
$largo $largo 1
$max=5// Cantidad de registros que quieres mostrar
$vuelta=0;

for(
$i=$largo $i>-$i--) { 

$libro explode("|"$fichero[$i]);

if (
$vuelta==$max) {
break;
} else {

echo 
"AQUI EL CODE";
$vuelta++;
}


?>
Una cosa.. A manoloweb se le olvido poner:
$libro = explode("|", $fichero[$i]);
Sin eso no muestra los mensajes..
Y lo otro en $vuelta=0 ( no 1 )

Gracias Nuevamente por todo!!

Saludos..
__________________
Eduardo Toloza
SatisFactor.io - NPS
  #13 (permalink)  
Antiguo 25/07/2003, 15:12
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Hmmm. creo que ya llegue tarde pero bueno. Tambien podias resolver tu problema haciendo algo como lo siguiente.
Código PHP:
//Abrimos fichero
$fichero file("mensajestxt");

//ordenamos en forma inversa el arreglo
krsort$fichero );

//Numero maximo de registros a mostrar
$reg_max 3;

//calculamos una diferencia para determinar el
// el numero de resgistros restante en el 
//arreglo, depues de quitar el numero de registros
//que vamos a mostrar
$mostrar sizeof($fichero) - $reg_max;

while( 
sizeof$fichero ) > $mostrar )
{
    
//Obtenemos registro y lo separamos
    // para imprimir
    
$libro explode("|"array_shift$fichero ));
    echo 
$libro[0]."\n</br>";
    echo 
$libro[1]."\n</br>";
    echo 
$libro[2]."\n</br>";

Igual puede mejorarse metiendolo dentro de una funcion o buscando otro algoritmo que haga mas facil la tarea.
  #14 (permalink)  
Antiguo 25/07/2003, 15:28
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
[b]Pues mi primera propuesta creo que era mucho mas simple...

Código PHP:
<?
$fichero 
file("mensajes.txt"); 
$fichero=array_reverse($fichero);
$max=5// Cantidad de registros que quieres mostrar
for($i=0$i<$max $i++) { 
    
$libro explode("|"$fichero[$i]);
    echo 
$libro[0]."\n</br>";
    echo 
$libro[1]."\n</br>";
    echo 
$libro[2]."\n</br>";


?>

Saludos!
__________________
Manoloweb
  #15 (permalink)  
Antiguo 25/07/2003, 15:31
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Ahora que veo bien... es casi igual a la de Herminio, solo que yo uso array_reverse() y el krsort()...

__________________
Manoloweb
  #16 (permalink)  
Antiguo 25/07/2003, 15:45
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Me gusta mas la tuya Manolo, esta mas clara. Ademas con la que yo puse no puedes hacer uso posterior del arreglo ya que va vaciandolo, seria necesario meter todo dentro de una funcion para pasar el parametro como copia del arreglo.
Ademas esta bien, con eso demostramos que hay mas de una forma de hacer lo mismo y como se comento en otro mensaje al final todos ganamos con el aprendisaje reciproco que dan estos foros
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 00:18.