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?
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 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);
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.
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