login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Verwijder specifieke regel

Offline Waflix - 06/08/2011 21:38 (laatste wijziging 06/08/2011 21:40)
Avatar van WaflixLid Ik heb, met succes, een script gemaakt waarin een gebruiker regels kan toevoegen aan een tekstbestand. Vervolgens heb ik gezocht naar een script dat regels kan verwijderen uit een tekstbestand, en dat lukt ook.

Verwijdert laatste regel
  1. function cutline($filename,$line_no=-1) {
  2.  
  3. $strip_return=FALSE;
  4.  
  5. $data=file($filename);
  6. $pipe=fopen($filename,'w');
  7. $size=count($data);
  8.  
  9. if($line_no==-1) $skip=$size-1;
  10. else $skip=$line_no-1;
  11.  
  12. for($line=0;$line<$size;$line++)
  13. if($line!=$skip)
  14. fputs($pipe,$data[$line]);
  15. else
  16. $strip_return=TRUE;
  17.  
  18. return $strip_return;
  19. }
  20.  
  21. cutline('foo.txt'); // deletes last line in foo.txt


Als ik zou willen dat hij bijvoorbeeld regel 16 verwijdert uit het bestand, dan vul ik ', 16' in achter 'naam.txt'.
Het lukt mij echter niet om een variabele in te vullen als getal. Dus bijvoorbeeld...
  1. cutline('naam.txt', $_POST['del'])


Hoe zou ik ervoor kunnen zorgen dat hij wel werkt? (De code hoeft niet per sé te worden aangepast; een nieuwe code volstaat ook).

  Bron van code

3 antwoorden

Gesponsorde links
Offline vinTage - 07/08/2011 08:28
Avatar van vinTage Nieuw lid
  1. <form action="" method="post">
  2. <input name="regelnr" type="text" />
  3. <input name="delete" type="submit" value="delete" />
  4. </form>
  5.  
  6. <?php
  7. if(isset($_POST['delete']))
  8. {
  9. cutline('naam.txt', $_POST['regelnr']);
  10. }
  11. ?>

Offline Waflix - 07/08/2011 12:01 (laatste wijziging 07/08/2011 12:21)
Avatar van Waflix Lid Misschien gaf ik te weinig details, maar dat is al wat ik had. En zei ik trouwens niet al dat die code niet werkt om de één of andere reden?
----
Vreemd genoeg blijkt de code nu wel te werken. Misschien dat ik de vorige keer gewoon een ';' was vergeten...
----
Ik wil nu dat de code wat anders doet, maar nu werkt hij gedeeltelijk niet.
  1. <?php
  2. if( isset($_POST['delete'])) {
  3. $bPass = md5($_POST['pass']);
  4. if ($bPass == $aPass) {
  5. if(!isset($_POST['add'])) {
  6. function cutline($filename,$line_no=-1) {
  7. $strip_return=FALSE;
  8. $data=file($filename);
  9. $pipe=fopen($filename,'w');
  10. $size=count($data);
  11. if($line_no==-1) $skip=$size-1;
  12. else $skip=$line_no-1;
  13. for($line=0;$line<$size;$line++)
  14. if($line!=$skip)
  15. fputs($pipe,$data[$line]);
  16. else
  17. $strip_return=TRUE;
  18. return $strip_return;
  19. }
  20. cutline('vanquish.txt');
  21. ?>
  22. <script>
  23. alert("Line erased!")
  24. </script>
  25. <?php
  26. } else {
  27. function cutline($filename,$line_no=-1) {
  28. $strip_return=FALSE;
  29. $data=file($filename);
  30. $pipe=fopen($filename,'w');
  31. $size=count($data);
  32. if($line_no==-1) $skip=$size-1;
  33. else $skip=$line_no-1;
  34. for($line=0;$line<$size;$line++)
  35. if($line!=$skip)
  36. fputs($pipe,$data[$line]);
  37. else
  38. $strip_return=TRUE;
  39. return $strip_return;
  40. }
  41. cutline('vanquish.txt', $_POST['add']);
  42. ?>
  43. <script>
  44. alert("Line erased!")
  45. </script>
  46. <?php
  47. }
  48. header('Refresh: 0; URL=vanquish.php');
  49. } else {
  50. echo "The entered password is wrong!";
  51. }


Het is de bedoeling dat wanneer je niets invult, hij de laatste regel verwijderd, en wanneer je wel iets invult, hij die regel verwijderd. Maar bij het invullen van niets doet hij ook niets...
Offline FrankL - 07/08/2011 16:42
Avatar van FrankL Lid
  1. // telt het aantal lijnen, dus weet je ook wat laatste regelnummer is
  2. $last_line = count(file('vanquish.txt'));
  3. cutline('vanquish.txt', $last_line);
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s