Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/03/2012, 17:09
Avatar de RikardoWeb
RikardoWeb
 
Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 12 años, 1 mes
Puntos: 0
Eliminar fila especifica de un txt con PHP

Que mas amigos Foros del Web mi comentario es el siguiente:

Resulta que estoy ingresando informacion a un archivo txt por medio de un formulario que recibe el email dejo saltos entre cada uno de los registros y todo hasta ahi resulta perfecto.

este es le codigo para insertar en el txt :

index.php
Código PHP:
$page.=$_POST['txtEmail'];
$page.="\r\n";
$fd fopen ('DBtext.dat''a');
fwrite ($fd$page);
fclose($fd);
header('location:index.php'); 
Hago la lista de esos registros y hasta ahi todo anda... este el codigo

listar.php

Código PHP:
<?php
  $ar
=fopen("DBtext.dat","r") or die("No se pudo abrir el archivo");
  while (!
feof($ar)){
    
$linea=fgets($ar);
    
$lineasalto=nl2br($linea);
    if(
$lineasalto!=""){ ?>
        <a href="delete.php?id=<?php echo $lineasalto?>" onclick="return confirm('¿Está seguro de eliminar este registro?');">°</a>
<?php 
    
}
    echo 
$lineasalto;
  }
  
fclose($ar);
?>
<br>
<a href="delete.php?id2=all" onclick="return confirm('¿Está seguro de eliminar todos los registros?');">All delete</a>
<br>
<a href="index.php">Back</a>

El problema radica al momento de eliminar o borrar una fila en especifico pues esto lo hago por medio de un link y me lo manda a un archivo llamado delete.php por url destaco que $id es el nombre del registro que quiero eliminar e $id2 es el nivel de eliminar si son todos o el especifico el codigo es el sgte:


Código PHP:
$archivo file('DBtext.dat');
$id=$_GET['id'];
$id2=$_GET['id2'];

if(
$id2=='all'){
    foreach(
$archivo as $a => $va1){
        if(
$archivo[$a] = $id ){
            unset(
$archivo[$a]);
        }
    }
    
file_put_contents('DBtext.dat'implode $archivo"\n") );
    
header('location: index.php');
}
else{
 foreach(
$archivo as $a => $var){
    
$explode explode(' '$var); 
        if(
trim($explode[0] == $id )){
            unset(
$archivo[$a]);
        }
    }
    
    
$cont_new implode(''$archivo); 
    
$f fopen('DBtext.dat''w'); 
    
fwrite($f$cont_new); 
    
fclose($f); 
    
    
header('location: index.php');

En el 1er condicional me borra todos los archivos (esa es la idea) pero en el sino es donde presento el problemita que en el unset() no me esta tomando el registro ke hago en la comparacion del if

Agradezco a todo el que me pueda ayudar! :) este es mi primer post jejeje
Gracias de ante mano!