![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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. |
|
|
![]()
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) |
|
|
![]()
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. |
|
|
![]()
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. |
|
|
![]()
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". |
|
|
![]()
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) . |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:14 |