Tengo una serie de datos agrupados por líneas y separados por comas en un TXT, es decir:
Línea uno: numerox,colorx,marcax,saborx...
Línea dos: ynumero,ycolor,ymarca,ysabor...
Problema: En un formulario, el usuario me indíca el segundo dato con el objetivo de que se borre la línea del txt y se suprima el vacío que deja.
Hasta donde he llegado:Tengo una página con un bucle while que busca en el txt el dato que da el usuario. Lo encuentra... pero a lo máximo que he llegado es a borrar todo el archivo, no solo la línea con un file/str_replace.
Código:(para muestra un botón)
[
Código PHP:
// recuperando las variables del trabajo buscado y seleccionado para borrar
$nueva=$_REQUEST["nueva"];
$busca=$_REQUEST["numerotrabajo"]; //buscamos ya que asignamos el nombre original a la del vector
$tecnic=$_REQUEST["tecnica"];
$cantidad=$_REQUEST["cantidad"];
$articulo=$_REQUEST["articulo"];
$texto=$_REQUEST["texto"];
$c1=$_REQUEST["c1"];
$c2=$_REQUEST["c2"];
$cliente=$_REQUEST["cliente"];
$fichero=@fopen("sinasignar/$tecnic.txt",'r');
// abro archivo lectura
if (!$fichero) {
echo("");
}else{
while ( !feof( $fichero ) )
// no parar hasta que acabe el archivo
{
$c = fgets( $fichero, filesize("sinasignar/$tecnic.txt") );
// separa cada dato
$v=explode(",","$c");
$nueva=$v[0];
$numerotrabajo=$v[1];
$tecnica=$v[2];
$cantidad=$v[5];
$articulo=$v[6];
$texto=$v[7];
$c1=$v[8];
$c2=$v[9];
$cliente=$v[10];
if ( $busca==$numerotrabajo )
// SI hay coincidencia
{
:'(:'(:'(:'(:'(:'(:'(:'(:'(:'(
}}}
Código PHP:
// recuperando las variables del trabajo buscado y seleccionarlo para borrar
$nuevar=$_REQUEST["nueva"];
$busca=$_REQUEST["numerotrabajo"]; //buscamos ya que asignamos el nombre original a la del vector
$tecnicar=$_REQUEST["tecnica"];
$cantidadr=$_REQUEST["cantidad"];
$articulor=$_REQUEST["articulo"];
$textor=$_REQUEST["texto"];
$c1r=$_REQUEST["c1"];
$c2r=$_REQUEST["c2"];
$clienter=$_REQUEST["cliente"];
$fichero=@fopen("sinasignar/$tecnicar.txt",'rb');
$tmp=@fopen("sinasignar/temp.txt",'wb');
while ( !feof( $fichero ) ) // no parar hasta que acabe el archivo
{
// lee hasta(\n),EOF
$c = fgets( $fichero, filesize("sinasignar/$tecnicar.txt") );
// separa cada dato
$v=explode(",","$c");
$nueva=$v[0];
$numerotrabajo=$v[1];
$tecnica=$v[2];
$cantidad=$v[5];
$articulo=$v[6];
$texto=$v[7];
$c1=$v[8];
$c2=$v[9];
$cliente=$v[10];
if ( $busca!=$numerotrabajo ){
fputs($tmp,"$c");
}
}
fclose("$fichero");
fclose("$tmp");
//renombrar machacar el original
$dir="sinasignar/$tecnicar.txt"; //puedes usar dobles comillas si quieres
if(file_exists($dir))
{
if(unlink($dir))
print "El archivo fue borrado";
}
else
print "Este archivo no existe";
$dir2="sinasignar/temp.txt"; //puedes usar dobles comillas si quieres
if(file_exists($dir2))
{
if(rename($dir2 , "sinasignar/$tecnicar.txt"))
print "El archivo fue renombrado";
}
else
print "Este archivo no existe";