Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] pomysł na prywatny systerm wymiany linków
Forum PHP.pl > Forum > Przedszkole
Taifun
Witam.
Losowanie wybranych linków czy tekstu na stronach jest proste.
Ale jak "przytwierdzić" dany element na stałe do danej strony?
Jakieś pomysły?
b_chmura
oświeć ciemniaka - nie rozumiem
Taifun
  1. <?php
  2. $textfile ="quotes.txt";
  3. $quotes = file("$textfile");
  4. $quote = rand(0, sizeof($quotes)-1);
  5. echo $quotes[$quote];
  6. ?>

Jak teraz zrobić aby losowanie odbywało się co 24 godziny ?
Cysiaczek
CRON - wpisz w google, a to zobaczysz.
b_chmura
ewentualnie jeśli masz duży ruch na stronie a nie masz crona:

  1. <?php
  2. $plik = 'aktualnylink.txt'; //plik w którym będziesz trzymać który link ma zostać teraz wyświetlony
  3. $text ="quotes.txt"; //twój plik z linkami
  4. $dane = file($text); //otwieramy plik do tablicy 
  5. $cnt = count($dane);//liczymy ile jest linków (zakładam ze każdy link jest w nowej lini)
  6.  
  7. $akt = date("H"); //pobieramy aktualną godzinę
  8. $od = "14"; $do = "15" //wyznaczamy przedział czasu w jakim ma sie wykonać skrypt 
  9.  
  10. if($akt > $od and $akt < $do) //sprawdzamy czy aktualny czas mieści sie w przedziale przez nas wyznaczonym
  11. {//jeśli tak
  12. $nr = rand(0, $cnt); // wyznaczamy nowy numerek
  13. file_put_contents($nr, $plik);//zapisujemy numerek do pliku (jakoś musimy go pamiętać
  14. }
  15. else
  16. {//jeśli nie
  17. $nr = file_get_contents($plik); //pobieramy stary numerek
  18. }
  19.  
  20. echo $quotes[$nr]; //wyświetlamy link (linie) o numerku $nr
  21. ?>



taka idea sobie ;-) pisane z palca, możliwe literówki

Edit:

trochę źle to pomyślałem , zaraz spróbuje napisać coś konkretniejszego
Taifun
W ogole jak działają wasze prywatne systemy wymiany linków do zwiększenia np. ilości zaindeksowanych podstron?
b_chmura
  1. <?php
  2.  
  3. $plik = "plik.txt";
  4. $file = file($plik);
  5. $cnt = count($file);
  6.  
  7. $akt = date("Hs");
  8. /* poniżej wyznaczamy czas w którym będzie trwać losowanie
  9.  * ja dałem na piętnaście sekund od godziny 12
  10.  * jeśli masz duży ruch zmniejsz ten czas
  11.  * jeśli masz mały ruch zwiększ go
  12.  */
  13. $od = 1200; $do = 1215; //ggss
  14. if($akt > $od AND $akt < $do)
  15. {
  16. $nr = rand(1, $cnt-1); 
  17. $file[0] = $nr."\n";
  18. file_put_contents($plik, $file);
  19. }
  20. else
  21. {
  22. $nr = $file[0];
  23. }
  24.  
  25. echo $file[$nr];
  26.  
  27. ?>


plik plik.txt z chmod ustawionym na 666

Edit:
i jeszcze: plik plik.txt ma wyglądać coś w sposób:
Kod
0
http://google.pl
http://wp.pl
http://interia.pl
http://youtube.com

po prostu w pierwszej linijce jest zapamiętywany numer linku a w kolejnych linijkach kolejne strony www
Taifun
na Windowsie nie działa twój kod.
b_chmura
Cytat(Taifun @ 11.11.2007, 18:42:29 ) *
na Windowsie nie działa twój kod.


za dużo mi to nie mówi, pojawiają sie jakieś błędy? jaką masz wersje php?
spróbuj file_put_contents zmienić na:

  1. <?php
  2. if(is_writable($plik))
  3. {
  4. if($fopen = fopen($plik, 'a')) 
  5. {
  6. if(fwrite($fopen, $file) === FALSE)
  7. {
  8. echo "Nie mogę zapisać do pliku <b>$plik</b>";
  9. }
  10. fclose($fopen);
  11. }
  12. else
  13. {
  14. echo "Nie mogę otworzyć pliku <b>$plik</b>";
  15. }
  16. }
  17. else
  18. {
  19. echo "Plik <b>$plik</b> nie jest zapisywalny";
  20. }
  21. ?>


EDIT
fuck zapomniałem ze $file to tablica, odpowiedz na powyższe pytania, jeśli problem tkwi w file_put_contents to napiszemy jego odpowiednik
Taifun
pusta strona się wyświetla. Robiłem to też na linuxpl.com i to samo.
@edit
prosiłbym o odpowiednik.
Cytat
Call to undefined function: file_put_contents()
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.