Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: Jak mozna edytowac pliki txt
Forum PHP.pl > Forum > Przedszkole
perzot
witam jestem poczatkujacy w php.Ostatnio pisze pewien skrypt .Problem jest w tym ,ze bym chcial dodac edycie danych ,ktore juz dodalem do pliku textowego.

Oto moje pliki:


index.php tutaj wyswietlam dane

  1. <html>
  2. <head>
  3. </HEAD>
  4. <BODY >
  5.  
  6.  
  7.  
  8. <?
  9. include &#092;"picks.php\";
  10. ?>
  11.  
  12. </BODY>
  13. </html>




add.php przez ten plik dodaje dane
  1. <?php
  2.  
  3. <html>
  4. <head>
  5. <title>Dodaj wpis</title>
  6. </head>
  7. <body>
  8. <center>
  9. <font size=5 face=verdana> <b>Bet v.1.0</b></font></center>
  10. <br><br>
  11. <table align=center cellpadding=0 cellspacing=>
  12. <tr><td>
  13. <font size=1 face=verdana>
  14. <form method=post action=added.php>
  15. Date:<input type=text size=5 name=date>
  16. Match:<input type=text name=match>
  17. League:<input type=text name=league>
  18. Odd:<input type=text size=2 name=odd>
  19. Result:<input type=text size=2 name=result>
  20. Tip:<input type=text size=2 name=tip>
  21. Livescore:<input type=text name=livescore>
  22.  
  23.  
  24.  
  25. <center>
  26. <br><br>
  27. <input type=submit value=Dodaj> <input type=reset value=Wyczysc></form>
  28.  
  29. </font>
  30. </td></tr></table>
  31.  
  32. </body>
  33. </html>
  34.  
  35. ?>


added.php sortowanie danych+zapis do pliku txt
  1. <META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=index.php\">
  2. <?
  3. $ip = $REMOTE_ADDR;
  4. $file=fopen(&#092;"dane.txt\", \"w\");
  5. fwrite($file, &#092;"$date||$match||$league||$odd||$result||$tip||$livescore n\");
  6. fclose($file);
  7. echo &#092;"Match added!\";
  8. ?>





picks.php
  1. <?
  2. $dane=file(&#092;"dane.txt\");
  3. for($i=0; $i<count($dane); $i++)
  4. {
  5. $wiersz=explode(&#092;"||\", $dane[$i]);
  6. echo &#092;"
  7.  
  8.  
  9.  
  10. <table align=center border=0 bordercolor=#a8a8a8 cellpadding=0 cellspacing=0 style=border=collapse: collapse>
  11. <tr valign=top><td>
  12.  
  13.  
  14. <tr >
  15. </tr>
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  <TR>
  22. <td>
  23.  
  24. <td width=115 bgcolor=#a1a1a1><center><font size=1 face=verdana>$wiersz[0]</font></td>
  25.  
  26. <td width=170 bgcolor=white><center><font size=1 color=#FA7C1D face=verdana>$wiersz[1]</font></td>
  27.  
  28. <td width=220 bgcolor=white><center><font size=1 face=verdana>$wiersz[2]</font></td>
  29.  
  30.  
  31. <td width=120 bgcolor=white><center><font size=1 face=verdana>$wiersz[3]</font></td>
  32.  
  33.  
  34. <td width=70 bgcolor=white ><center><font size=1 face=verdana>$wiersz[4]</font></td>
  35.  
  36.  
  37. <td width=100 bgcolor=white ><center><font size=1 face=verdana>$wiersz[5]</font></td>
  38.  
  39. <td width=20 bgcolor=white><a href=http://$wiersz[6] target=_blank> <center><font size=1 face=verdana> $wiersz[6]</font></a></td>
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. </TR>
  50.  
  51.  
  52. </td></tr></table>
  53.  
  54.  
  55.  
  56.  
  57.  
  58. &#092;";
  59. }
  60. ?>





Dzialanie skryptu:

Przez add.php dodaje mecz,data itd. w pliku added.php -dodaje+sortuje
w index.php pobiera plik picks.php i wyswietla go.

Otoz problem tkwi w tym ,ze chce zrobic edycie w tego co dodalem np. liverpoo-chelsea chce edytowac i wpisac w tym samym polu liverpool - Milan
vala
e to zaladuj cala zawartosc pliku do textfielda
potem wyedytuj to co chcesz:)
i zapisz spowrotem:)
Guest
problem w tym ,ze ja chcialbym to robic przez przegladarke a nie otwierac plik w np. w notepad i edytowac
perzot
Moglby ktos mi to napisac ten kawalek skryptu dotyczace tego:

"e to zaladuj cala zawartosc pliku do textfielda
potem wyedytuj to co chcesz:)
i zapisz spowrotem:)

"
Volume
Jak chcesz to tu: http://forum.php.pl/index.php?showtopic=27879 jest opisane jak zrobic edycje pliku txt ale z calego pliku, teraz sprobuje zrobic by edytowac wierszami czy jakos tak.. jeszcze nie mam pomyslu - moze ktos zarzuci jakas funkcj± jak sie do tego zabrac.. Jeszcze poszukam cos na necie.
Wave
No patrz:
  1. <?php
  2.  
  3. $dane=file('dane.txt');
  4.  
  5. $nr=$_GET['nr']; // Pobieramy z adresu nr lini któr± chcemy edytowaæ
  6. if(!ISSET($_GET['nr'])) $nr=0;
  7.  
  8. $wiersz=explode('||', $dane[$nr]);
  9. <form method=post action=added.php>
  10. <table align=center border=0 bordercolor=#a8a8a8 cellpadding=0 cellspacing=0 
  11. tyle=border=collapse: collapse><tr valign=top><td><tr></tr><TR><td>
  12.  
  13. <td width=115 bgcolor=#a1a1a1><center><input value=\"'.$wiersz[0].'\" name=date></center></td>
  14.  
  15. <td width=170 bgcolor=white><center><input value=\"'.$wiersz[1].'\" name=match></center></td>
  16.  
  17. <td width=220 bgcolor=white><center><input value=\"'.$wiersz[2].'\" name=league></center></td>
  18.  
  19.  
  20. <td width=120 bgcolor=white><center><input value=\"'.$wiersz[3].'\" name=odd></center></td>
  21.  
  22.  
  23. <td width=70 bgcolor=white ><center><input value=\"'.$wiersz[4].'\" name=result></center></td>
  24.  
  25.  
  26. <td width=100 bgcolor=white ><center><input value=\"'.$wiersz[5].'\" name=tip></center></td>
  27.  
  28. <td width=20 bgcolor=white><center><input value=\"'.$wiersz[6].'\" name=livescore></center></td>
  29.  
  30. </TR></td></tr></table>
  31. <input type=submit value=Edytuj> <input type=reset value=Reset></form>');
  32. ?>
perzot
Wave---> nie dziala wyswietla tylko text field'a z ze zmienna $wiersz[0]
AxZx
Wave, a teraz zrob zapis tego co zedytujesz smile.gif
jezeli wyswietlasz z tablicy, tablica pewnie jest dwu wymiarowa, pierwszy wymiar to numer linni w pliku, drugi wymiar to 'pola' w linni oddzielone jakims specjalnym ciagiem znakow.

i to jest latwo zrobic

gorzej z zapisem, choc w sumie nie, wystarczy troche posiedziec i sie wykombinuje, podmieniasz wartosc z tablicy na nowa ta zedytowana i laczysz w string i dopisujesz do pliku po kolei linie smile.gif
troche pisania jest.
Guest
Cytat
Wave---> nie dziala wyswietla tylko text field'a z ze zmienna $wiersz[0]

Nie sprawdza³em, ale na oko widze ¿e wszystko jest dobrze. Zobacz pod IE i zmien bgcolor na black(mo¿e to co¶ da).
Cytat
gorzej z zapisem, choc w sumie nie, wystarczy troche posiedziec i sie wykombinuje, podmieniasz wartosc z tablicy na nowa ta zedytowana i laczysz w string i dopisujesz do pliku po kolei linie
troche pisania jest.

Przy ogromnej ilo¶ci linijek to jest mission impossible, ale przecie¿ od czego s± bazy danych.
Poza tym pewnie nie zauwa¿y³e¶ ale dane w skrypcie perzota s± zapisywane tylko w jednej linijce (poprzez 'w') wiêc tutaj nie bêdzie problemu.
Cytat
Wave, a teraz zrob zapis tego co zedytujesz

A od czego jest to:
Cytat
<form method=post action=added.php>
AxZx
Cytat(Guest @ 2005-03-24 13:59:10)
Cytat
gorzej z zapisem, choc w sumie nie, wystarczy troche posiedziec i sie wykombinuje, podmieniasz wartosc z tablicy na nowa ta zedytowana i laczysz w string i dopisujesz do pliku po kolei linie
troche pisania jest.

Przy ogromnej ilo¶ci linijek to jest mission impossible, ale przecie¿ od czego s± bazy danych.
Poza tym pewnie nie zauwa¿y³e¶ ale dane w skrypcie perzota s± zapisywane tylko w jednej linijce (poprzez 'w') wiêc tutaj nie bêdzie problemu.


a nie widzisz ze po kazdej lini jest znacznik konca linii ?
czyli jeden wpis jest to jedna linia w pliku


Cytat(Guest @ 2005-03-24 13:59:10)
Cytat
Wave, a teraz zrob zapis tego co zedytujesz

A od czego jest to:
Cytat
<form method=post action=added.php>


hehe no to tylko przekierowuje cie do strony gdzie masz skrypt zapisujacy, wiec nie o tym mowie, tylko o tym skrypcie ktory ma to wszystko polaczyc i zapisac do pliku tongue.gif
Wave
Chyba mnie nie zrozumia³e¶ (ani jego kodu smile.gif ).
Cytat
$file=fopen("dane.txt", "w");

Z tego co wiem ten fragment zeruje/resetuje/obcina plik wiêc zawsze bêdzie w nim tylko jedna linia. biggrin.gif A znak nowej lini nie ma tu nic do znaczenia bo przy jednej lini jest niepotrzebny a przy wielu to podstawa. ;]
Cytat
hehe no to tylko przekierowuje cie do strony gdzie masz skrypt zapisujacy, wiec nie o tym mowie, tylko o tym skrypcie ktory ma to wszystko polaczyc i zapisac do pliku
Ja ju¿ okres zabawy na plikach przeszed³em wiêc jak chcesz to sam sobie napisz. ;]
perzot
Cytat
Ja ju¿ okres zabawy na plikach przeszed³em wiêc jak chcesz to sam sobie napisz. ;]



moglby ktos to napisac plis exclamation.gif! sadsmiley02.gif
vala
nie chce mi sie wycinac to co nie potrzebne
to jest czesc panelu , ktory robilem tak od niechcenia:)
Kod
<center>kisisz dupe w panelu</center>



<ul>
<li><a href="panel.php?pp=nowynews">nowy news</a></li>
<li><a href="panel.php?pp=gwalc">zmien news</a></li>
<li><a href="panel.php?pp=galeria">gwa³æ galerie</a></li>
<li><a href="panel.php?pp=linki">gwa³æ linki</a></li>
<li><a href="panel.php?pp=przyjaciele">przyjaciele</a></li>
<li><a href="panel.php?pp=sklad">sklad</a></li>
<li><a href="panel.php?pp=wojenki">wojenki</a></li>
<li><a href="panel.php?pp=osiagniecia">osiagniecia</a></li>
</ul>







<?php

switch($_GET['pp'])
{
   case "nowynews": include("zrobnews.php");break;
   case "gwalc": osiagniecia(6); break;
   case "galeria": break;
   case "linki": osiagniecia(5);break;
   case "przyjaciele": osiagniecia(4);break;
   case "sklad": osiagniecia(3);break;
   case "wojenki": osiagniecia(2);break;
   case "osiagniecia":osiagniecia(1);break;      //
}







function osiagniecia($id)
{
$dupa=$_GET['pp'];

switch($id)
{
case 1: echo "zmieniasz osiagniecia";$pp="data/osiagniecia.dat";break;
case 2: echo "zmieniasz wojenki";    $pp="data/wojenki.dat";break;
case 3: echo "modyfikujesz sklad";   $pp="data/sklad.dat";break;
case 4: echo "edytujesz przyjaciol"; $pp="data/przyjaciele.dat";break;
case 5: echo "linki";                $pp="data/linki.dat";break;
case 6: echo "edycja newsow";        $pp="data/news.html";break;
}



?>
<form action="panel.php?pp=<?=$dupa;?>&zz=zmien" method="post">
<textarea rows="18" cols="100"name="tresc">
<?=;
$plik=fopen($pp,"r");
while(!feof($plik)){
echo fgets($plik,4096);
}
fclose($plik);
?>
</textarea>
<BR>
<input type="submit" value="zmien" \/>
</form>

<?php

if($_POST['tresc'] && $_GET['zz']=="zmien"){

$plik=fopen($pp,"w");
fputs($plik,$_POST['tresc']);
fclose($plik);

echo "Dane zostaly zmienione na :"."<BR>".$_POST['tresc'];

}else{
echo $linia;
}


}

?>
perzot
nic mi nie wychodzi. czy moglby ktos mi to napisac
Wave
Cytat
czy moglby ktos mi to napisac

Co mam Ci napisaæ?questionmark.gif Gotowiec z gotowca? oO
Cytat
nic mi nie wychodzi

Jak mi nic nie wychodzi to biore xennê albo mexaform.
Ociu
Xenna t chyba dla kobiet ? dry.gif
perzot
laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif biggrin.gif biggrin.gif biggrin.gif
Wave
[OT]A znasz moj± p³eæ? smile.gif[/OT]
perzot
cos wymslilem i skopiowalem z innego postu z podobym problemem


edit.php


  1. <?php
  2. $file = &#092;"dane.txt\";
  3. $fopen = fopen($file, &#092;"r\");
  4. $edit = fread($fopen, filesize($file));
  5.  
  6. echo &#092;"<form method=\"post\" action=\"save.php\">\";
  7. echo &#092;"<textarea rows=\"7\" cols=\"27\" name=\"edycja\">\";
  8. echo $edit;
  9. echo &#092;"</textarea>\";
  10. echo &#092;"<input type=\"submit\" value=\"edit\" name=\"Edit form\"></form>\";
  11. ?>




save.php


  1. <?php
  2. $file = &#092;"dane.txt\";
  3. $edycja=$_POST['edycja'];
  4. $_POST['edycja']=stripslashes($edycja);
  5. $fp = fopen($file, &#092;"w+\") | die(\"blad w otwieraniu pliku\");
  6. flock($fp, 2);
  7. fwrite($fp, $_POST['edycja']) | die(&#092;"blad w zapisywaniu pliku\");
  8. flock($fp, 3);
  9. fclose($fp);
  10. ?>



blad sie pojawia przy otwarciu pliku
Volume
Ja przyjelem ze '|' to jest to samo co or.. ale sie najwyrazniej polylilem.. i niech ktos wyjasni dlaczego: | nie rowna sie or?
puki co:

  1. <?php
  2. $file = &#092;"dane.txt\";
  3. $edycja=$_POST['edycja'];
  4. $_POST['edycja']=stripslashes($edycja);
  5. $fp = fopen($file, &#092;"w+\") or die(\"blad w otwieraniu pliku\");
  6. flock($fp, 2);
  7. fwrite($fp, $_POST['edycja']) or die(&#092;"blad w zapisywaniu pliku\");
  8. flock($fp, 3);
  9. fclose($fp);
  10. ?>

chmod na 777 i w pliku powinienes miec jakis tekst bo parser bedzie sie rzucal ze plik jest pusty.. - i tu kolejne pytanie - co zrobic aby parser nie mil nic przeciwko pustemu plikowi?, bo jak usunie sie cala zawartosc pliku - to lipa i parser sie burzy...
Ociu
Cytat
[OT]A znasz moj± p³eæ? smile.gif[/OT]

Tak.
Volume
Znalaz³em, ¿e "|" jest to operator "or" tyle, ¿e jaki¶ operacji bitowaych a tu chodzi chyba o opertor logiczny(?) czyli ||=or ? Ale sprawdzilem i te dwie kreseczki nie dzialaja jak or... czy ktos moze to wyjasnic? oraz to:
Cytat
co zrobic aby parser nie mil nic przeciwko pustemu plikowi?, bo jak usunie sie cala zawartosc pliku - to lipa i parser sie burzy...
To jest wersja lo-fi g³ównej zawarto¶ci. Aby zobaczyæ pe³n± wersjê z wiêksz± zawarto¶ci±, obrazkami i formatowaniem proszê kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.