Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Losowe wybieranie tekstu
xSlash
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


Mam plik txt:

Kod
Cos1|Cos2|Cos3|Cos4...



Jak zrobic, zeby raz na dzien (czyli co 24h) zmieniał sie tekst na losowy.
Czyli 12czerwca Cos3, a 13czerwca Cos1...
Prosiłbym bardziej o gotowy skrypt, ale jesli nie to chociaz o podpowiedz jak to zrobic...
P.S. Funkcja "array" sie nie przyda bo tych "coś'ow" bedzie spoooro i dluuugich...
Go to the top of the page
+Quote Post
DREEMus
post
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


Ponumeruj sobie te "cosie" i potem ustaw "max" jako drugi parametr ...
rand" title="Zobacz w manualu PHP" target="_manual

Albo najpierw policz ile ich masz, a potem ustaw to na MAX ...
a co do zmiany co 24h, myśle że sam dojdziesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

PS. A nie lepiej Ci tu użyć MySQL? Nie będzie funkcjonalniej i bardziej przejrzyście?

Ten post edytował DREEMus 12.06.2009, 22:58:13
Go to the top of the page
+Quote Post
xSlash
post
Post #3





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


Nie za bardzo załapałem... Ale skad to bedzie wiedziec jaki element z pliku txt wyciąc... A co do 24h to tez sobie nie poradze... Jestes swierzak... Moglbys mi to napisac ?
Go to the top of the page
+Quote Post
DREEMus
post
Post #4





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


hmm, np.
  1. <?PHP
  2. function slogan () {
  3.  
  4.    $min = 0;
  5.    $max = 100 // tutaj wstawiasz sumowanie lini w TXT
  6.  
  7.    $nr = rand ( $min, $max ); // losujesz któryś "coś"
  8.  
  9.    $slogan = '...'; //tutaj wstawiasz linie z TXT, nr linia już masz
  10.    
  11.    echo $slogan;
  12.  
  13.    }
  14. ?>
Go to the top of the page
+Quote Post
xSlash
post
Post #5





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


Niestety nie dziala... nic nie pokazuje... ani echo $slogan ani echo $nr... nie działa...
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(xSlash @ 13.06.2009, 00:17:23 ) *
Niestety nie dziala... nic nie pokazuje... ani echo $slogan ani echo $nr... nie działa...


Polecam najpierw wczytać plik.
Poza tym określiłbyś co to ma być to "coś", bo np. gdy będzie znak nowej linii to będzie traktowane jako coś2 etc. ;d
Go to the top of the page
+Quote Post
teherty
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 4
Dołączył: 17.05.2009

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


  1. <?php
  2. $plik = file_get_contents('./baza.txt'); //ten plik z danymi
  3. $wpisy = explode('|',$plik);
  4. $ile = count($wpisy) - 1; //sumuje wpisy
  5. $i = rand(0,$ile);
  6. echo $wpisy[$i];
  7. ?>


To jest samo wyświetlanie, część o wyświetlaniu ciągle tego samego codziennie musisz sam dopisać. Dość gotowców. Mogę jedynie podpowiedzieć że najlepszym wyjściem byłoby zapisywanie tego wylosowania do pliku i sprawdzanie ostatniego zapisu, a w razie potrzeby ponowne losowanie odrzucając ostatni wynik.

@low: rzeczywiście, dziękuję bardzo.

Ten post edytował teherty 12.06.2009, 23:36:26
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(teherty @ 13.06.2009, 00:25:08 ) *
  1. <?php
  2. $wpisy = explode('|','./baza.txt'); //ten plik z danymi
  3. $ile = count($wpisy) - 1; //sumuje wpisy
  4. $i = rand(0,$ile);
  5. echo $wpisy[$i];
  6. ?>


To jest samo wyświetlanie, część o wyświetlaniu ciągle tego samego codziennie musisz sam dopisać. Dość gotowców.


Zamiast:
Kod
'./baza.txt'


chciał kolega napisać:
Kod
file_get_contents('./baza.txt')


@down
@edit

Na prawdę, mógłbyś czytać...
Cytat(xSlash @ 13.06.2009, 00:30:36 ) *
Takie cos wyswietla mi "./baza.txt"... zamiast czesci to sciezke to pliku (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) Kolejny zly pomysl... Ale dam Pomogl...
Czekam na inne propozycje


Przecież napisałem, co masz zrobić zamiast bezsensownego kopiowania.
Kolega zapomniał też dodać, że "coś" od innego "cosia" musi być oddzielone znakiem |

Ten post edytował fifi209 12.06.2009, 23:34:04
Go to the top of the page
+Quote Post
xSlash
post
Post #9





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


Cytat(teherty @ 13.06.2009, 00:25:08 ) *
  1. <?php
  2. $wpisy = explode('|','./baza.txt'); //ten plik z danymi
  3. $ile = count($wpisy) - 1; //sumuje wpisy
  4. $i = rand(0,$ile);
  5. echo $wpisy[$i];
  6. ?>


Takie cos wyswietla mi "./baza.txt"... zamiast czesci to sciezke to pliku  (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) Kolejny zly pomysl... Ale dam Pomogl...


Czekam na inne propozycje

EDIT: Z zaleceniami fifiego to mi wyskakuja bledy skladni... Jak to ma byc?
Kod
$wpisy = explode('|','file_get_contents('slowo.txt')'); //ten plik z danymi
$wpisy = explode('|','file_get_contents('.slowo.txt')'); //ten plik z danymi
$wpisy = explode('|','file_get_contents('./slowo.txt')'); //ten plik z danymi

Ktores z tych? Bo zadne z tych nie działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

No dobra... po tych stu editach zadziałało... A moglbym jeszcze prosic o dodanie takiego limitu ze zanim da drugi raz cos1 musiało podac wszystkie inne... Czyli zeby powtorzyc jakis rekord musiało najpierw dac wszystkie inne (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) (dwa razy to samo napisałem) czyli zeby sie nie powtarzaly ;]

Ten post edytował xSlash 12.06.2009, 23:34:09
Go to the top of the page
+Quote Post
DREEMus
post
Post #10





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


  1. <?php
  2. $wpisy = explode( '|', file_get_contents('slowo.txt') ); //ten plik z danymi
  3. ?>

zero chęci ... o przemyśleniu nie wspomnę ... a podstawy poszły w las ... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował DREEMus 12.06.2009, 23:37:22
Go to the top of the page
+Quote Post
teherty
post
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 4
Dołączył: 17.05.2009

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


Kod cały wyżej, poprawiony.
Co do drugiej części to myślę, że filemtime" title="Zobacz w manualu PHP" target="_manual i time" title="Zobacz w manualu PHP" target="_manual mówią same za siebie.
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


zapisz do innego pliku wystąpienia w postaci zserializowanej tablicy, potem wczytuj ją do skryptu i sprawdzaj kiedy wystąpiło.

P.S. Potrzebne funkcje (te mniej znane) file_get_contents()" title="Zobacz w manualu PHP" target="_manual, file_put_contents()" title="Zobacz w manualu PHP" target="_manual, serialize()" title="Zobacz w manualu PHP" target="_manual, unserialize()" title="Zobacz w manualu PHP" target="_manual i poczytaj http://pl.php.net/manual/en/book.array.php
Go to the top of the page
+Quote Post
xSlash
post
Post #13





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


ludzie chyba sobie to odpuszcze... 


Jestem total zielony a wy dajecie linki tylko do tutow...

Nie mozecie pomoc piszac skryptu? *(P.S.Nie czekam na odpowiedzi typu "nie" ;/)*
Go to the top of the page
+Quote Post
Fifi209
post
Post #14





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(xSlash @ 13.06.2009, 00:51:58 ) *
ludzie chyba sobie to odpuszcze... 
Jestem total zielony a wy dajecie linki tylko do tutow...

Nie mozecie pomoc piszac skryptu? *(P.S.Nie czekam na odpowiedzi typu "nie" ;/)*


Jeżeli chcesz gotowy skrypt to można ten temat przenieść do giełdy i oznaczyć tagiem "wolontariat" chyba, że jesteś w stanie zapłacić.

W przedszkolu masz się uczyć czegoś, aby nie zadawać 100x tego samego pytania.
Go to the top of the page
+Quote Post
MicNeo
post
Post #15





Grupa: Zarejestrowani
Postów: 37
Pomógł: 7
Dołączył: 21.11.2004
Skąd: Kraków / Nowy Sącz

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


  1. <?php
  2.  
  3.  
  4.    $wpisy = explode('|', file_get_contents('baza.txt')); // plik z danymi
  5.    $ile = count($wpisy) - 1; //sumuje wpisy
  6.    
  7.    if ($wpisy[0] != date('d')){    // sprawdzamy czy mamy zmienic wylosowany tekst
  8.    
  9.        $i = rand(2, $ile);         // losujemy sobie tekst
  10.        
  11.        $wpisy[0] = date('d');      // zmieniamy dzien
  12.        $wpisy[1] = $i;                // zmieniamy nr tekstu
  13.            
  14.        $fp = fopen('baza.txt', 'w');        // zapis do pliku
  15.        fwrite($fp, implode('|', $wpisy));  // Zapisujemy do pliku wsyzstko, dzien, nr cytatu, i cytaty
  16.        fclose($fp);                        // wiadomo ;)
  17.    }
  18.    
  19.    else {                              // mamy nadal ten sam dzien wiec podstawiamy za $i stary numer
  20.        $i = $wpisy[1];
  21.    }
  22.    
  23.  
  24.    echo $wpisy[$i];                 // wyswietlamy
  25.  
  26.    
  27.  
  28. ?>


Bardzo prosto rozwiązane, byś mógł się coś z tego nauczyć. Do tego okomentowałem to.

Pozdrawiam!

PS: Schemat pliku: baza.txt -> 13|5|cos1|cos2|cos3
13 - dzien
5 - zapamietany ostatni tekst
cos1, cos2 ... - wiadomo, teksty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Fifi209
post
Post #16





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(MicNeo @ 13.06.2009, 01:09:43 ) *
Bardzo prosto rozwiązane, byś mógł się coś z tego nauczyć. Do tego okomentowałem to.

Pozdrawiam!

PS: Schemat pliku: baza.txt -> 13|5|cos1|cos2|cos3
13 - dzien
5 - zapamietany ostatni tekst
cos1, cos2 ... - wiadomo, teksty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Użyj do zapisuj file_put_contents()" title="Zobacz w manualu PHP" target="_manual bo tak tylko zasypujesz go nowymi funkcjami (ich ilością)

P.S. Teraz się nic nie nauczy. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
MicNeo
post
Post #17





Grupa: Zarejestrowani
Postów: 37
Pomógł: 7
Dołączył: 21.11.2004
Skąd: Kraków / Nowy Sącz

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


Ja tylko pokazałem użycie kilku podstawowych narzędzi. Jeżeli będzie się chciał nauczyć to sie nauczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A bez explode, implode, działania na plikach, ani rusz w dalszy świat (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chociaż sam nie używam jakoś często plików w swoich skryptach, ale wypada to znać. Do teraz nie wiedziałem, że PHP5 wprowadziło takie fajne funkcje jak file_put_contents czy file_get_contents (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Pozdrawiam!
Go to the top of the page
+Quote Post
xSlash
post
Post #18





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


Cytat(MicNeo @ 13.06.2009, 01:25:30 ) *
Ja tylko pokazałem użycie kilku podstawowych narzędzi. Jeżeli będzie się chciał nauczyć to sie nauczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Twoj skrypt nic nie wyswietla, ale widze, ze mamy podobne poglady na swiat... Niestety... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
MicNeo
post
Post #19





Grupa: Zarejestrowani
Postów: 37
Pomógł: 7
Dołączył: 21.11.2004
Skąd: Kraków / Nowy Sącz

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


Jakiś błąd? Może źle plik masz ustawiony? Poza tym pamiętaj, że w pliku w którym masz te swoje dane, są też dane konfiguracyjne.

Pozdrawiam.
Go to the top of the page
+Quote Post
xSlash
post
Post #20





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.04.2009
Skąd: Sieradz

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


errora nie wywala, ale poprostu nic nie pokazuje... sciezka jest dobra... a na probe  w pliku napisalem

"13|5|cos1|cos2|cos3"
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 24.08.2025 - 01:38