Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z explode help mi :], Mam taki problem z explode jak puzniej dodany news usunac ?
kt1
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 3
Dołączył: 9.02.2006
Skąd: moree.webd.pl

Ostrzeżenie: (10%)
X----


Witam mam taki problem z php
chcę zrobić dodawanie newsów na plikach *.txt przejde do konkretów
no tak mam kod do zapisywania
  1. <?php
  2. $otw=fopen("baza.txt","a");
  3. flock($otw, 2);
  4. fwrite($otw, "$nick#$mail#$tresc#$data#$ip#$wwww|||");
  5. flock($otw, 3);
  6. fclose($otw);
  7.  
  8. ?>

ten kod zapisuje do pliku
i nie wiem jak zrobic zeby usunać dodany news pomoze mi ktos ?

Ten post edytował kt1 2.06.2006, 16:46:38


--------------------
Jeśli masz jakieś fajne tutki albo coś inne związane z php mysql AJAX to wejdź
tu WEJDZ TU I DODAJ !!! :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
raf_gc
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

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


dla ułatwienia mógłbyś wstawić jakiś identyfikator do każdego newsa, a potem trzeba stworzyć pętle która przepisze zawartość pliku .txt do zmiennej np $newsFile, potem taki plik zapisujesz i newsa nie ma już w bazie

"$id#$nick#$mail#$tresc#$data#$ip#$wwww|||"
do generowania identyfikatora mógłbyś użyć funkcji time();

  1. <?php
  2. $newsID = $_GET['id'];
  3. $oldNewsDB = file('news.txt');
  4. $newsCount = $oldNewsDB;
  5.  
  6. for ($i = 0; $i < $newsCount; ++$i)
  7. {
  8. $newsData = explode('#', $oldNewsDB[$i]);
  9. if($newsID == $newsData['0'])
  10. {
  11. continue;
  12. }
  13. $newNewsDB .= trim($oldNewsDB[$i]) . "NOW LINIA";
  14. }
  15.  
  16. $file2write = fopen('news.txt', 'w');
  17. fwrite($file2write, $newNewsDB);
  18. fclose($file2write);
  19. ?>


przestudiuj idee tego skryptu, napisałem to przed chwilą, ale powinno Ci to przynajmniej nasunąć jakąś myśl jak to zrobić.

ps. tam gdzie jest "NOWA LINIA"; powinno być "\r\n";, nie wiem czemu mi ucina znaczki "\"

Ten post edytował raf_gc 3.06.2006, 05:33:41
Go to the top of the page
+Quote Post
kt1
post
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 3
Dołączył: 9.02.2006
Skąd: moree.webd.pl

Ostrzeżenie: (10%)
X----


ok thx smile.gif pomysle cos natym ;]

ehh wkleiłem to i zrobięłm id jako 1
i odpaliłem skrypt
ale strona sie zawiesza ico mam zrobic ?


--------------------
Jeśli masz jakieś fajne tutki albo coś inne związane z php mysql AJAX to wejdź
tu WEJDZ TU I DODAJ !!! :)
Go to the top of the page
+Quote Post
kt1
post
Post #4





Grupa: Zarejestrowani
Postów: 131
Pomógł: 3
Dołączył: 9.02.2006
Skąd: moree.webd.pl

Ostrzeżenie: (10%)
X----


pomuzcię !


--------------------
Jeśli masz jakieś fajne tutki albo coś inne związane z php mysql AJAX to wejdź
tu WEJDZ TU I DODAJ !!! :)
Go to the top of the page
+Quote Post
em1X
post
Post #5





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


myślenie ponoć nie boli :/

zamiast dodawać
Kod
$nick#$mail#$tresc#$data#$ip#$wwww|||


dodawaj:
Kod
$nick#$mail#$tresc#$data#$ip#$wwwwrn


usuwanie.. a wedlug czego chcesz usuwac? bez sensu to jest.. moze wg daty?

  1. <?php
  2. // tutaj wpisac ktora date chcesz usunac
  3. $ktory = '';
  4.  
  5. $arr = array();
  6. $fp = fopen('baza.txt', 'r');
  7. while (!feof($fp))
  8. {
  9.  $dane = fgets($fp, 1024);
  10.  $tab = explode('#', $dane);
  11.  
  12.  // jezeli to nie jest ten do usuniecia to dodaj
  13.  // go do tablicy, ktora ponownie zaladujemy
  14.  // do pliku z danymi
  15.  if ($tab[3] != $ktory)
  16.  {
  17. $arr[] = $dane;
  18.  }
  19. }
  20.  
  21. fclose($fp);
  22. $fp = fopen('baza.txt', 'w');
  23. fputs($fp, implode());
  24. fclose($fp);
  25. ?>


pisane z buta wiec moze nie dzialac, ale moze zalapales o co chodzi.. poprawki zostawiam dla ciebie

Ten post edytował em1X 2.06.2006, 20:01:43


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
raf_gc
post
Post #6





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

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


Zrobiłem jeden błąd w tamtym skrypcie, ten działa na pewno bo sprawdzałem

  1. <?php
  2. $newsID = $_GET['id'];
  3. $oldNewsDB = file('news.txt');
  4. $newsCount = count($oldNewsDB);
  5.  
  6. for ($i = 0; $i < $newsCount; ++$i)
  7. {
  8. $newsData = explode('#', $oldNewsDB[$i]);
  9. if($newsID == $newsData['0'])
  10. {
  11. continue;
  12. }
  13. $newNewsDB .= trim($oldNewsDB[$i]) . "rn";
  14. }
  15.  
  16. $file2write = fopen('news.txt', 'w');
  17. fwrite($file2write, $newNewsDB);
  18. fclose($file2write);
  19. ?>


każdy nowy rekord powinien znajdowac się w nowej linii w pliku .txt

skrypt musisz wywołac np: delete.php?$id=1
Go to the top of the page
+Quote Post
kt1
post
Post #7





Grupa: Zarejestrowani
Postów: 131
Pomógł: 3
Dołączył: 9.02.2006
Skąd: moree.webd.pl

Ostrzeżenie: (10%)
X----


Dzieki raf_gc Duże piwko dlaciebie !


--------------------
Jeśli masz jakieś fajne tutki albo coś inne związane z php mysql AJAX to wejdź
tu WEJDZ TU I DODAJ !!! :)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 12:33