Find fejl i php

ajbo
Antal: 898
Tilmeldt:
19-11-2005
User is offline
Find fejl i php

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


dk_zero-cool
dk_zero-cool's picture
Antal: 2529
Tilmeldt:
21-12-2007
User is offline
Re: Find fejl i php

Kan du ikke lige forklare bedre hvad du gerne vil?


ajbo
Antal: 898
Tilmeldt:
19-11-2005
User is offline
Re: #1

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


divineant
divineant's picture
Antal: 666
Tilmeldt:
26-06-2007
User is offline
Re: Find fejl i php

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

dk_zero-cool
dk_zero-cool's picture
Antal: 2529
Tilmeldt:
21-12-2007
User is offline
Re: Find fejl i php

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?


ajbo
Antal: 898
Tilmeldt:
19-11-2005
User is offline
Re: #1 og 3

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.


divineant
divineant's picture
Antal: 666
Tilmeldt:
26-06-2007
User is offline
Re: Find fejl i php

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.


ajbo
Antal: 898
Tilmeldt:
19-11-2005
User is offline
Re: #6

"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.