Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak mozna edytowac pliki txt
-perzot-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
vala
post
Post #2





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


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


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
-Guest-
post
Post #3





Goście







problem w tym ,ze ja chcialbym to robic przez przegladarke a nie otwierac plik w np. w notepad i edytowac
Go to the top of the page
+Quote Post
-perzot-
post
Post #4





Goście







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:)

"
Go to the top of the page
+Quote Post
Volume
post
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


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.
Go to the top of the page
+Quote Post
Wave
post
Post #6





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


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. ?>
Go to the top of the page
+Quote Post
-perzot-
post
Post #7





Goście







Wave---> nie dziala wyswietla tylko text field'a z ze zmienna $wiersz[0]
Go to the top of the page
+Quote Post
AxZx
post
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


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.


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
-Guest-
post
Post #9





Goście







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>
Go to the top of the page
+Quote Post
AxZx
post
Post #10





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


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

Ten post edytował AxZx 24.03.2005, 15:08:24


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Wave
post
Post #11





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


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. ;]
Go to the top of the page
+Quote Post
-perzot-
post
Post #12





Goście







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
Go to the top of the page
+Quote Post
vala
post
Post #13





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


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;
}


}

?>


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
-perzot-
post
Post #14





Goście







nic mi nie wychodzi. czy moglby ktos mi to napisac
Go to the top of the page
+Quote Post
Wave
post
Post #15





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


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.
Go to the top of the page
+Quote Post
Ociu
post
Post #16





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Xenna t chyba dla kobiet ? dry.gif
Go to the top of the page
+Quote Post
-perzot-
post
Post #17





Goście







laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif biggrin.gif biggrin.gif biggrin.gif
Go to the top of the page
+Quote Post
Wave
post
Post #18





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


[OT]A znasz moją płeć? smile.gif[/OT]
Go to the top of the page
+Quote Post
-perzot-
post
Post #19





Goście







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
Go to the top of the page
+Quote Post
Volume
post
Post #20





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


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...

Ten post edytował Volume 29.03.2005, 00:20:41
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.08.2025 - 06:52