Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nadpisywanie wartosci
post
Post #1





Grupa:
Postów: 0
Pomógł:
Dołączył: --

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


Czesc, pisze prosty rotator banerow z kontrola ilosci wyswietlen. Wszystko sprawnie do momentu nadpisywania odczytanych z pliku tekstowego danych.

[php:1:1c7e157f44]<?php
$wyniki = "banery/wyniki.txt";
$wpis = file($wyniki);

$tab = explode(" | ", $wpis[$liczba-1]);
echo "$tab[0] :: $tab[1] :: $tab[2]<br>";
$tab[2]+=1;

$tmp = implode(" | ", $tab);

for($i=0; $i<$ile; $i++)
{
if ($i!=($liczba-1))
{
$nowa_tab[]=$wpis[$i];
} else {
$nowa_tab[]=trim($tmp)."rn";
}
}

$fp=fopen($wynik, "r+");
flock($fp,2);

for ($n=0; $n<count($wpis); $n++)
{
fwrite($fp, str_replace("r", '', implode('', $nowa_tab)));
}

flock($fp,3);
fclose($fp);
?>[/php:1:1c7e157f44]
Dziala, tzn. dopisuje do tablicy nowe wartosci, ale w pliku tekstowym nadpisuje nowe wartosci i je na dodatek dopisuje. Nie ma wiec ukladu pierwotnego:

lp | firma_x | baner_firmy_x | wyswietlono

tylko zwielokrotniona ilosc wpisow: 2, potem 4 itd. Czy ktos moze mi pomoc to poprawic? Dziekuje z gory.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
rachwal
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 29.08.2002
Skąd: Wrocław

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


Tak probowales ?

$fp=fopen($wynik, "w");

powinno pomoc.
Go to the top of the page
+Quote Post
post
Post #3





Grupa:
Postów: 0
Pomógł:
Dołączył: --

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


Nie pomoglo, zmienialem na rozne tryby r+, w, w+. Z kazdym razem dopisuje, tyle ze przy w+ po kazdym wpisie jest znak przejscia do nowej linii.
(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
rachwal
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 29.08.2002
Skąd: Wrocław

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


Zacznijmy od tego ze calosc jest napisana niezmiernie niechlujnie.
Na poczatek : gdzie zainicjowales zmienna $liczba :?:
No chyba ze nie wkleiles nam calosci kodu.
Go to the top of the page
+Quote Post
post
Post #5





Grupa:
Postów: 0
Pomógł:
Dołączył: --

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


Powiedz mi proszę co to znaczy niechlujnie, jeśli chodzi o kod. Potem przedstaw wersję tego samego kodu jak wyżej, którą uważasz za "chlujną".

Cytat
No chyba ze nie wkleiles nam calosci kodu.
A po co cały kod wklejać? Przedstawilem fragment, z którym mialem problem. $liczba to po prostu liczba wygenerowana losowo dla banera do wyswietlenia.

Jak nie umiesz albo nie masz zamiaru pomóc, a tylko posty nabijać i wartościować kod to lepiej siedź cicho.
Go to the top of the page
+Quote Post
rachwal
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 29.08.2002
Skąd: Wrocław

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


Brak mi slow. Masz racje -- nie umiem. Szancunku troszke czlowieku! Mam nadzieje ze Ci tu nikt nie pomoze. Ja na pewno nie, choc mialem szczere checi, ale przeciez ja nie umiem...

Jesli administrator forum uwaza ze "nabijam sobie posty" (o zgrozo), to prosze odjac te 3 z mojego profilu...

BTW: zarejestruj sie, tez bedziesz mogl sobie "nabijac".
Go to the top of the page
+Quote Post
post
Post #7





Grupa:
Postów: 0
Pomógł:
Dołączył: --

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


Cytat
Mam nadzieje ze Ci tu nikt nie pomoze.
Przynajmniej piszesz z duzej litery gdzie trzeba (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Rozwiazanie znalazlem zanim odpowiedzialem na bezczelny post o niechlujnym kodzie. Moglem je podać wczesniej, ale bylem ciekaw czy i jak zareagujesz. Końcówka kodu wygląda tak:

[php:1:ca7c293b2c]<?php

$fp=fopen($wynik, "w+");
flock($fp,2);
fwrite($fp, str_replace("r", '', implode('',$nowa_tab)));
flock($fp,3);
fclose($fp);

?>[/php:1:ca7c293b2c]
Kod w całosci zlicza ilość wyświetleń banerów i z tablicy wybiera następny. To rozwiązanie ma jednak małą wadę: użytkownik widzi ten sam baner tak długo, aż nie odświeży strony. Można temu zapobiec wyłączając cachowanie strony w metatagu. Gdyby ktos mial inny pomysł, to prosze dopisać.

Oczywiścia na rachwala nie licze, ale kto wie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post

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: 23.08.2025 - 11:14