webForumDet fria alternativet

Radera en rad i textfil

4 svar · 287 visningar · startad av web00132

web00132Medlem sedan maj 2001797 inlägg
#1

Jag försöker få en rad raderad i min textfil. Jag har tjuvkikat på koden i denna tråd. Den funkar utmärkt. Problemen kommer när jag försöker anpassa den koden till min övriga kod. Så här ser det ut hos mig.

$fil = "fil";

$fp = fopen($fil, r);
while($str = fgets($fp, 1024))
{
	$exp = explode("	", $str);
	if ($exp[1] != $erasename) $dump .= $exp[0]."	".$exp[1];
}
if ($fp) fclose($fp);
$fp = fopen($fil, w);
$tabort = fputs($fp, $dump);
if ($fp) fclose($fp);

"$erasename" är alltså samma som "$radera" i koden som fanns från början.

Min textfil ser ut så här:
blablabla (tab) 1.html
blablablabla (tab) 2.html
osv.

Någon?

web00132Medlem sedan maj 2001797 inlägg
#2

Ingen verkar kunna hjälpa. Ok, vi skiter i inlägget ovan, jag försöker formulera om.

Det här är säkert jättesimpelt egentligen, men jag sitter fast. Den här koden raderar en rad i en textfil som heter 'lasvart':

<?
if ($action == "erase")
{

$fil="lasvart";

  $fp = fopen($fil, r);
  while($str = fgets($fp, 1024)) {
   $exp = explode("	", $str);
   if ($exp[1] != $radera) $dump .= $exp[0]."	".$exp[1]."";
  }
  if ($fp) fclose($fp);
  $fp    = fopen($fil, w);
  $tabort   = fputs($fp, $dump);

  if ($fp) fclose($fp);
echo "$radera raderad.";
}
else
{
	print "Radera nåt!";
}
?>

Den koden fungerar utmärkt om man anropar den med hjälp av en radioknapp i ett formulär:[KOD<form method="POST" action="<? echo $PHP_SELF; ?>?action=erase">
<table>
<?
$fil="lasvart";
$fp = fopen($fil, r);
while($str = fgets($fp, 1024)) {
$exp = explode(" ", $str);
echo "<tr><td><input type=\"radio\" name=\"radera\" value=\"$exp[1]\"></td><td>$exp[0]</td></tr>\n";
// echo "<tr><td><a href='test.php?action=erase&radera=" . $exp[1] . "'>" . $exp[0] . "</a></td></tr>\n";
}
if ($fp) fclose($fp);

?>
</table>
<input type="submit">
</form> Det jag vill göra är att byta ut radioknappen och formuläret mot en textlänk som innehåller samma uppgifter. Den textlänken är nu bortkommenterad ovan. När jag byter formuläret mot textlänken raderas ingen rad, det är mitt problem.

Ingen som kan hjälpa?

stevenetMedlem sedan juni 20001 251 inlägg
#3

Verkar konstigt... POST-variablerna är globala, men inte GET? :q

<?
$action=$_GET["action"];
$radera=$_GET["radera"];
if ($action == "erase")
{
..

$exp = explode(" ", $str);
borde vara
$exp = explode("\t", $str);

web00132Medlem sedan maj 2001797 inlägg
#4

Det är jättekonstigt. Fast variablerna $radera och $action verkar funka i båda fallen, dom kan skrivas ut i alla fall. Det är något annat som händer.

Efter explode där så är det en tabtryckning, det funkar ju i ena fallet, med form och POST-variabler.

Här är filen. Skapa en textfil som heter 'lasvart' också som ser ut som jag beskrivit ovan.

web00132Medlem sedan maj 2001797 inlägg
#5

Haha! Jag löste det!
När man försökte använda sig utav det sista värdet på varje rad i textfilen tog den med en radbrytning också. Det var därför det inte funkade när man skulle skriva det till en länk.

Tack i alla fall! :birp

125 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)