Jeg har en tekstfil hvori der indskrives en række linjer med værdier fra tekstramme og et par forskellige knapper. Jeg ønsker at en af linjerne i
tekstfilen fjernes ud fra de i html filen tildelte værdier. De indtastede
linjer returneres som indtastet, men INGEN slettet. Hvad skal ændres
i nedenstående kode for at den ønskede sletning foretages?
<?php
$tabel = Array(0=>0);
$x = 0;
$gamle = " ";
$buffer = " ";
$filnavn = 'xyz.txt';
$fp = fopen($filnavn, 'r');
while (!feof($fp)){
$buffer = " ";
$buffer = fgets($fp,1024);
if ($buffer != $gamle && $buffer > " ") {
$x = $x + 1;
$tabel[$x] = $buffer;
$gamle = $buffer;
}}
fclose($fp);
$fp = fopen($filnavn, 'w');
for($y = 1;$y <= $x - 1; $y++){
fwrite($fp,$tabel[$y]." \n");}
fclose($fp);
?>
21-12-2007
Kan du ikke lige forklare bedre hvad du gerne vil?
19-11-2005
Jo, det troede, jeg gjorde i og med koden. Jeg har en html fil, hvori nogle brugere indskriver dels en kode (tal), dels et tidspunkt de 2 plus et 6-cifret tal der indtastes i et textarea. Det går fint og har gået fint meget længe med at returnere værdierne fra php til html. Problemet er, at brugerne kan komme til at indtaste værdier, som de senere fortryder og gerne vil have slettet fra databasen (tekstfilen). Alt fungerer fint bortset fra at slette den linje, brugeren ønsker slettet efter at have indtastet værdierne i de 3 modtagere, jeg nævnte ovenfor - der må her ikke blive indsat ny linje i tekstfilen, hvorimod den der svarer til den, de indskriver her ved den ønskede sletning.
Jeg håber, det fører et skridt videre
26-06-2007
Så vidt jeg kan læse ud fra din kode ønsker du at skære redundante linier fra ,så fremt de kommer lige efter hinanden.
Det skulle denne lille snippet gerne kunne gøre for dig.
#000000"><?php
$lines #007700">= file#007700">('xyz.txt'#007700">);
$fp #007700">= fopen#007700">('xyz.txt'#007700">,'w'#007700">);
$buf#007700">=""#007700">;
foreach($lines #007700">as $id #007700">=> $content#007700">){
if($content #007700">!= $buf#007700">)
fwrite#007700">($fp#007700">,$content#007700">);
$buf #007700">= $content#007700">;
}
fclose#007700">($fp#007700">);
?>
21-12-2007
Som #3 skriver, så er der ikke mere i den kode du har indtastet end at den først udskriver alt fra en fil, og derefter skriver det hele ind igen, efter den har fjernet en linie i fald af at denne er ens med forgående linie. Der er ingen tegn på user inputs i den kode overhovedet.
Ret mig hvis jeg stadig ikke har fanget din mening.
En bruger taster tre ting ind, dette skal skrives til en fil. Det skal herefter igen kunne slettes fra filen ved at brugeren indtaster de tre værdier igen, som så samlignes med de enkelte linier i filen?
19-11-2005
Jeg har vist været utrolig dårlig til at forklare mig. Jeg har en i php filen indkommende tekstlinje. Den skal sammenlignes med linjerne i xyx.txt. Hvis og kun hvis der er en linje i tekstfilen, der svarer til den indkommende tekstline skal linjeg i tekstfilen slettes og intet nyt skal tilføres tekstfilen. Tak til jer begge.
Jeg har ikke mulighed for at teste din kode #3, men den ser umiddelbar ud til at være lige i øjet, så endnu en gang tak.
26-06-2007
Nu tror jeg at jeg har nogenlunde fanget ideen i det du har gang i, har faktisk selv lavet noget lignende engang, fordi jeg ikke kunne overskue at sætte mig ind i postgresql. Men du gør jo ikke det du siger du vil. Der bliver ikke sammenliget med en ekstern streng, kun med den forgående i tekstfilen.
Min gamle text baserede todo liste ligger her: http://kom.aau.dk/~brianam/index.php?mode=todo
Du skal være velkommen til at lege lidt rundt med den, og sig endelig til hvis du vil kigge koden igennem, så kan jeg lige fikse en tarball. Dog er det hacket relativt hurtigt og beskidt sammen, og kommentarer er i sparsom mængde.
19-11-2005
"Der bliver ikke sammenliget med en ekstern streng, kun med den forgående i tekstfilen." Det har du ret i. Det har jeg ikke tænkt på, for det fungerer jo udmærket - bare i en anden php fil. Der har aldrig og vil næppe nogensinde blive behov for over 20 linjer, de skifter så til gengæld rigtig tit alt efter det aktuelle klokkeslet og dag så jeg har ikke fundet grund til at lave en "rigtig"
database. Tak pgså til dig.