Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapisywanie do pliku
alchemic
post 16.05.2004, 20:07:56
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 8.01.2004
Skąd: Legnionowo

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


Witam

mam taki problem:
mam scrypt komentarzy i dziala poprawnie wszystko tylko che by zapisywal/odczytywal komentarze w ten sposob by najstarsze byly na koncu a nowe na poczatku... co mam w nim zmienic ?

[php:1:d4a2961296]
<?
$DATADIR="data/";
$FORMAT="<TABLE align="center" WIDTH=95% cellspacing=6 style="border-collapse: collapse" bordercolor="#6585A1" bgcolor="#6585A1" cellpadding="0" border="0">
<TR bgcolor="#6585A1" ><TD bgcolor="#6585A1"><b>
<font face="Verdana" size="1" color="#FFCC00">%imie% </font></b>
<font face="Verdana" size="1" color="#111111">|</font><font face="Verdana" size="1" color="#800000"><b> </b></font><font face="Verdana">
<span style="font-size: 7pt">%data%</span></font></TD>
</TR><TR>
<TD bgcolor="#6585A1"><font face="Verdana" color="#d8e6f1" style="font-size: 9pt">%tekst%</font></TD></TR><TR>
<TD bgcolor="#6585A1"><font color="#ffffff">_______________________________</font></TD></TR></TABLE></div>";

$commentID="a$commentID";

function displayComments()
{
global $commentID, $start, $DATADIR, $FORMAT;

if(strstr($commentID, "/"))
return;

if(!file_exists($DATADIR.$commentID))
return;

$file=fopen($DATADIR.$commentID, "r");
flock($file, 1);

$i=0;

while(!feof($file))
{
$imie=chop(fgets($file, 1000));
$email=chop(fgets($file, 1000));
$data=chop(fgets($file, 1000));
$comment=chop(fgets($file, 100000));

if(feof($file))
break;

$display=$FORMAT;

if($email)
$mailto="<A HREF="mailto:$email">$email</A>";

$display=str_replace("%imie%", $imie, $display);
$display=str_replace("%email%", $mailto, $display);
$display=str_replace("%data%", $data, $display);
$display=str_replace("%tekst%", $comment, $display);

echo($display);

$i++;
}

flock($file, 3);
fclose($file);
}

function displayForm()
{
global $REQUEST_URI;
$len=strlen($REQUEST_URI)-strlen(strchr($REQUEST_URI, "?"));
$url=substr($REQUEST_URI, 0, $len);
?>
<FORM ACTION="panel_admina.php?id=2121" METHOD=POST>
<p>
<INPUT TYPE=HIDDEN NAME=COMMENTACTION VALUE=add>
</p>
<p>
<TABLE width="487">
</p>
<TR>
<TD><table width="90%" border="0" align="center">
<tr>
<td><b><font color="#003366" size="1" face="Verdana">Kto:</font></b></td>
<td><font face="Verdana" size="1" color="#003366"><b>
<input name=f_imie size=35 style="font-family: Verdana; font-size: 10pt; border: 1px solid #DCDEDF; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1; background-color: #7A97AF">
</b></font></td>
</tr>
<tr>
<td width="9%"><b><font color="#003366" size="1" face="Verdana">Wpis:</font></b></td>
<td width="91%"><font face="Verdana" size="1" color="#003366"><b>
<textarea name="f_tresc" cols="40" rows="3" style="font-family: Verdana; font-size: 10pt; color: #000000; border: 1px solid #DCDEDF; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1; background-color: #7A97AF"></textarea>
</b></font></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="SUBMIT" type=submit value="Dodaj" style="font-family: Verdana; font-size: 10px; color: #FFFFFF; font-weight: bold; border: 1px solid #FFFFFF; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1; background-color: #003366"></td>
</tr>
</table> <b></b></TD>
<TD><font face="Verdana" size="1" color="#003366"><b>
</b></font></TD>
<TR>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TR>
<TD></TD>
<TD>&nbsp; </TD>
</FORM>
<div align="center">
<?
}

if($COMMENTACTION=="add")
{
$file=fopen($DATADIR.$commentID, "a");
flock($file, 2);

$f_tresc=str_replace("n", "<BR>", $f_tresc);
$f_tresc=str_replace("r", "", $f_tresc);
$f_imie=str_replace("n", "<BR>", $f_imie);
$f_imei=str_replace("r", "", $f_imie);
$f_email=str_replace("n", "<BR>", $f_email);
$f_email=str_replace("r", "", $f_email);

fputs($file, $f_imie);
fputs($file, "n");
fputs($file, $f_email);
fputs($file, "n");
fputs($file, date("H:i d-m-Y"));
fputs($file, "n");
fputs($file, $f_tresc);
fputs($file, "n");

flock($file, 3);
fclose($file);
}

?>
</div>

[/php:1:d4a2961296]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Chewolf
post 17.05.2004, 14:37:23
Post #2





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

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


Zapisując tablicę danych do pliku odwróć ją [manual:4c5e1f124f]array_reverse[/manual:4c5e1f124f]
Go to the top of the page
+Quote Post
alchemic
post 17.05.2004, 14:59:30
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 8.01.2004
Skąd: Legnionowo

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


nie bardzo wiem jak to zastosowac, nie latwiej jest zmienic parametry
a i r ? jesli nie napisz mi jak odwrotnie odczytac tablice wynikow...
Go to the top of the page
+Quote Post
Majdan
post 17.05.2004, 18:19:38
Post #4





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


Cytat
nie bardzo wiem jak to zastosowac, nie latwiej jest zmienic parametry
a i r ? jesli nie napisz mi jak odwrotnie odczytac tablice wynikow...

A czy skorzystałeś z linku, który Ci podał m5910?
Parametry są omówione dokładnie w manualu. "r" - zapis tylko do odczytu, "a" - tylko do zapisu.


--------------------
Go to the top of the page
+Quote Post
alchemic
post 18.05.2004, 11:59:11
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 8.01.2004
Skąd: Legnionowo

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


r - tryb odczytu - otwarcie pliku do odczytu, zaczynając od początku pliku

a - tryb dodawania - otwarcie pliku do dodawania zawartości, począwszy od końca istniejącej

chodzi mi by tak ustawic parametry by bylo zapisywane od poczatki pliku cos tak pustawialem ale kasowal mi poprzedie wpisy...
Go to the top of the page
+Quote Post
Majdan
post 18.05.2004, 12:18:08
Post #6





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


Nie ma takiego parametru dla [manual:3a58eef595]fopen[/manual:3a58eef595], aby uzyskać to co chcesz robić. Musisz to zrobić inaczej.

Było już na forum.
:arrow: http://forum.php.pl/viewtopic.php?t=15171

PS. Szukanie nie boli.


--------------------
Go to the top of the page
+Quote Post
peterj
post 18.05.2004, 12:52:46
Post #7





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


może lepiej użyć funkcji rewind();
http://www.php.net/manual/pl/function.rewind.php
Przykład zastosowania:
[php:1:941a3ac654]<?php
$dane="jakieś dane do dodania";
$plik="plik.txt";
$fp=fopen("$plik", "r+");
rewind($fp);
flock($fp, 2);
fputs($fp, $dane);
flock($fp, 3);
fclose($fp);
?> [/php:1:941a3ac654]
Funkcja rewind(); powoduje 'przewinięcie' pliku do początku i potem dodajemy jakies dane, zostaną dodane na poczatku pliku.


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
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 Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:18