Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> operacja na plikach textowych
integer000
post
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 0
Dołączył: 24.09.2005

Ostrzeżenie: (30%)
XX---


mam taki skrypt:

  1. <?php
  2.  
  3. $pole1 = trim($_POST['pole1']);
  4. $pole2 = trim($_POST['pole2']);
  5.  
  6. if(empty($pole1) and empty($pole2)) {
  7.  
  8. // formularz
  9. echo '<form action="" method="post">
  10. link: <input type="text" name="pole2" value="http://" style="width: 200px;" /><br />
  11. nazwa: <input type="text" name="pole1" style="width: 183px;" /><br />
  12. <input type="submit" value="Zapisz" /> <input type="reset" value="Reset" />
  13. </form>';
  14.  
  15. }
  16.  
  17.  if ($pole1 != "") {
  18.  // dane pochodzace z formularza
  19. $dane = $pole1."`".$pole2."n";
  20. // przypisanie zmniennej $file nazwy pliku
  21. $file = "baza.txt";
  22. // uchwyt pliku, otwarcie do dopisania
  23. $fp = fopen($file, "a");
  24. // blokada pliku do zapisu
  25. flock($fp, 2);
  26. // zapisanie danych do pliku
  27. fwrite($fp, $dane);
  28. // odblokowanie pliku
  29. flock($fp, 3);
  30. // zamkniecie pliku
  31. fclose($fp);
  32.  
  33. echo "Dane zostaly zapisane!<br />";
  34. echo "<a href="index.php">Zobacz wpisane dane</a>";
  35.  
  36. }  
  37.  
  38.  
  39. ?>


zapisanie 2 wartości (nazwa i link) w pliku tekstowym

  1. <?php
  2.  
  3. echo "<table border=1 cellspacing=0 cellpadding=0 width=550px>";
  4.  
  5. // wczytanie zawartosci pliku do tablicy
  6. $file = file("baza.txt");
  7. // przechodzimy przez tablice za pomoca petli foreach
  8. foreach($file as $value) {
  9. // rozbijamy poszczególne linie na czesci
  10. $exp = explode("`",$value);
  11. // wyswietlamy rozbity tekst
  12. echo "<tr><td> <a href=$exp[1]>" .$exp[0]. "</a></td></tr>";
  13. }
  14.  
  15. echo "</table>";
  16. ?>

Wyświetlenie tych 2 wartości w tabelce jako odnośnik

  1.  
  2. <?php
  3. $plik = "baza.txt";
  4. $file = file($plik);
  5.  
  6. foreach($file as $value) {
  7.  
  8. $sp = explode("`", $value);
  9. list($nazwa,$link) = $sp;
  10.  
  11.  if($data == $id) {
  12.  
  13. echo '<form name="ksiega" method="post">
  14. <table cellpadding="0" cellspacing="0" width="600" border="1">
  15. <tr>
  16. <td>Nazwa :</td>
  17. <td ><input type="text" name="nazwa" value="'.$nazwa.'" />
  18. </td>
  19. </tr>
  20. <tr>
  21. <td>Link :</td>
  22. <td><input type="text" name="link" value="'.$link.'" />
  23. </td>
  24. </tr>
  25. <tr>
  26. <td>&nbsp;</td>
  27. <td><input class="button" type="submit" value="Zapisz poprawione"/> 
  28. </td>
  29. </tr>
  30.  </table>
  31.  </form>';
  32. }
  33. }
  34. ?>


Ponowne wyświetlenie 2 elemętów w 2 polach takstowych (edycja)

  1.  <?php
  2. $plik = "baza.txt";
  3. $file = file($plik);
  4.  
  5. foreach($file as $value) {
  6.  
  7. $sp = explode("`", $value);
  8. list($nazwa,$link) = $sp;
  9.  
  10. if($data == $id) {
  11.  
  12. $odczyt = "$nazwa`$link`n";
  13. $zapis = "";
  14. $fp = @fopen($plik, "r");
  15. flock($fp,1);
  16. $zaw = fread($fp, filesize($plik));
  17. @fclose($fp);
  18. $po = str_replace($odczyt,$zapis,$zaw);
  19. $fp = @fopen($plik, "w");
  20. flock($fp,2);
  21. fwrite($fp, $po);
  22. @fclose($fp);
  23.  
  24. }
  25. }
  26. ?>


Zapis poprawionych danych (odpowiednio zmodyfikowanych przez urzytkownika)


i w ostatniej części jest błąd ponieważ dane z pól edycyjnych nie zapisują się do pliku tekstowego.
Co jest źle (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował integer000 29.10.2005, 19:08:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
invx
post
Post #2





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


Kiedys to znalazlem, maprawde dobry text o operacjach na plikach, przejrzyj go, a napewno coś Ci sie przda:

Kod:
Kod
zapis11|zapis12|...|zapis1N zapis21|zapis22|...|zapis2N ... zapisM1|zapisM2|...|zapisMN


edycja takiego pliku:
php:

  1. <?php //ustaw sciezke do pliku: $filename = ""; $plik = file($filename); for( $i=0  ;  $i<count($plik)  ;  $i++) {     $wiersz = explode("|",chop($plik[$i]));     for( $j=0   ;  $j<count($wiersz)  ;   $j++)         echo $wiersz[$j]." ";     echo "<BR>"; } ?>



wyciagniecie konkretnego zapisu z pliku
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //ustaw numer wiersza: $nr_y = 4; //ustaw numer zapisu w wierszu $nr_x = 2; $plik = file($filename); $wiersz = explode("|" , chop($plik[$nr_y-1])); //szukany zapis: $szukany_zapis = $wiersz[$nr_x-1]; ?>


usuwanie z okreslonej pozycji
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //ustaw numer wiersza do usuniecie $to_delete = 4; $plik = file($filename); $plik[$to_delete-1] = ""; $plik = implode("",$plik); $fp = fopen($filename , "w");flock($fp,2); fputs( $fp , $plik); flock($fp,3);fclose($fp); ?>



dodawanie nowego wiersza na poczatek:
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //zdefiniuj nowy wiersz $nowy = "..."; $plik = file($filename); $plik = implode("",$plik); $plik = $nowy."rn".$plik; $fp = fopen($filename , "w");flock($fp,2); fputs( $fp , $plik); flock($fp,3);fclose($fp); ?>


dodawanie nowego wiersza na koniec:
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //zdefiniuj nowy wiersz $nowy = "..."; $plik = file($filename); $plik = implode("",$plik); $plik .= $nowy."rn"; $fp = fopen($filename , "w");flock($fp,2); fputs( $fp , $plik); flock($fp,3);fclose($fp); ?>



dodawanie nowego wiersza na dowolnej pozycji
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //zdefiniuj nowy wiersz $nowy = "..."; //podaj pozycje na ktorej dodac: $nr_y = 4; $plik = file($filename); $plik[$nr_y-1] = $nowy."rn".$plik[$nr_y-1]; $plik = implode("",$plik); $fp = fopen($filename , "w");flock($fp,2); fputs( $fp , $plik); flock($fp,3);fclose($fp); ?>



zmiana zawartosc dowolnego wiersza (aktualizacji rekordu)
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //zdefiniuj nowy wiersz $nowy = "..."; //podaj pozycje na ktorej zamienic: $nr_y = 4; $plik = file($filename); $plik[$nr_y-1] = $nowy."rn"; $plik = implode("",$plik); $fp = fopen($filename , "w");flock($fp,2); fputs( $fp , $plik); flock($fp,3);fclose($fp); ?>



zmiana zawartosc dowolnej pozycji w pliku (aktualizacji komorki)
php:
  1. <?php //ustaw sciezke do pliku: $filename = ""; //zdefiniuj nowa wartosc komorki $nowa = "..."; //podaj pozycje wiersza na ktorej zamienic: $nr_y = 4; //podaj numer komorki w wierszu na ktorej zamienic $nr_x = 2; $plik = file($filename); $wiersz = $explode("|" , chop($plik[$nr_y-1])); $wiersz[$nr_x-1] = $nowa; $wiersz = implode("|" , $wiersz); $plik[$nr_y-1] = $wiersz."rn"; $plik = implode("",$plik); $fp = fopen($filename , "w");flock($fp,2); fputs( $fp , $plik); flock($fp,3);fclose($fp); ?>


EDIT:
nie wiem czemu ale sie IPB wysypalo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


Ten post edytował invx 30.10.2005, 19:26:16
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: 3.10.2025 - 13:41