Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Edycja postów zapisanych w .txt
ZeTu
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 8
Dołączył: 8.12.2010

Ostrzeżenie: (0%)
-----


Witam
Mam wykonany skrypt do tworzenia i edycji postów i mam pewien problem. Mianowicie kod do edycji postów nie edytuje prawidłowo treści, nie umiem tego za bardzo wyjaśnić, ale na przykładzie to wyjaśnię.
A to kod edycji postów:
  1. ...
  2. $aid = $_GET['edytuj3'];
  3. if(!empty($aid)) {
  4. if(is_file('$aid')) include '$aid';
  5. else
  6.  
  7. echo '
  8. <br><b><br>Edycja strony</b>';
  9. $ide = $aid - 1;
  10. $tytul=chop($_POST["tytul"]);
  11. $tresc=chop($_POST["tresc"]);
  12. $folder = "$pliczek";
  13. $file=file("$folder");
  14. $dane=explode(" | ", $file[$ide]);
  15. $zero=$dane[0];
  16. $name=$dane[1];
  17. $link=$dane[2];
  18. $enter=$dane[3];
  19. $text = $plik1;
  20. $ad1 = $link;
  21. $ad2 = '$tresc';
  22. $be1 = $name;
  23. $be2 = '$tytul';
  24.  
  25. $plik = fopen("$folder", "r");
  26. $plik1 = fread($plik, 10240);
  27.  
  28.  
  29. $be1 = str_replace("+", " ", $be1);
  30. $ad1 = str_replace("+", " ", $ad1);
  31. $ad1 = str_replace("<br>", "
  32. ", $ad1);
  33.  
  34.  
  35. if ($_POST["Edycja3"]!="")
  36. {
  37. $ide = $aid - 1;
  38. $tytul=chop($_POST["tytul"]);
  39. $tresc=chop($_POST["tresc"]);
  40. $folder = "$pliczek";
  41. $file=file("$folder");
  42. $dane3=explode("", $file[0]);
  43. $ze=$dane3[0];
  44. $dane=explode(" | ", $file[$ide]);
  45. $zero=$dane[0];
  46. $name=$dane[1];
  47. $link=$dane[2];
  48. $enter=$dane[3];
  49. $enter = '
  50. ';
  51. $text = $plik1;
  52. $ad1 = $link;
  53. $ad2 = chop($_POST["tresc"]);
  54. $be1 = $name;
  55. $be2 = chop($_POST["tytul"]);
  56.  
  57. $plik = fopen("$folder", "r");
  58. $plik1 = fread($plik, 10240);
  59.  
  60. $ad2 = str_replace(" ", "+", $ad2);
  61. $be2 = str_replace(" ", "+", $be2);
  62.  
  63. $text = str_replace("$ad1", "$ad2", $text);
  64. $text = str_replace("$be1", "$be2", $text);
  65.  
  66.  
  67. file_put_contents($folder, $text);
  68. fclose($plik);
  69. echo("<br><br>Zapisano zmiany<br><a href='?panele=lista'>Zobacz efekt</a>");
  70. }
  71. else
  72. {
  73. echo <<<KONIEC
  74. <form method="POST" action="">
  75. <table>
  76. <p>
  77. <tr><td>Tytuł:</td><td><input type="text" name="tytul" size=20 value="$be1"></td> </tr>
  78. <tr><td>Treść:</td><td><textarea name="tresc" cols="25" rows="12">$ad1</textarea>
  79. </td> </tr>
  80. </p>
  81. <tr><td></td>
  82. <td><input type="submit" value="Zapisz zmiany" name="Edycja3"></td></tr>
  83. </table></form>
  84. KONIEC;
  85. }
  86. }
  87. ...

A to kod w .txt który jest przed edycją:
  1. tytul | tresc+mojego+posta
  2. tytul 2 | tresc+mojego+posta+22

I jeśli chcę zmienić tytul w pierwszej linii, to kod pobiera ta linie i wpisuje w formularz, po zmianie danych np. z "tytul" na "tytul2", to zamiast edytować w tej pobranej linii edytuje w całym pliku to słowo i wtedy kod wygląda tak:
  1. tytul2 | tresc+mojego+posta
  2. tytul2 2 | tresc+mojego+posta+22

A więc jak zrobić aby edytowało tylko z wybranej linii? Trochę pomieszałem w kodzie, ale mam nadzieję, że ktoś z was pomoże mi ten kod jakoś prawidłowo zedytować.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ZeTu
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 8
Dołączył: 8.12.2010

Ostrzeżenie: (0%)
-----


Z usuwaniem i dodawanie to nie problem.
Czyli w jaki sposób mam edytować daną linijkę?
Mam zrobić tak samo jak tutaj:
  1. $file[$ide] = str_replace("$ad1 | $be1", "$ad2 | $be2",$file[$ide]);

tylko zamiast
  1. $file[$ide]

dać nr id?
A właśnie czemu mam dawać to id? Nie może być tak, że nr'em id jest nr linii? Bo teraz jak mam dopisywać do tego pliku .txt jeszcze id, to będę musiał od nowa pisać ten kod php. A robię na plikach .txt bo jestem początkujący, a jak obczaje bardziej .php + .txt to wtedy przejdę na .php + MySQL

Ten post edytował ZeTu 31.12.2011, 17:41:10
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 21:33