![]() |
![]() ![]() |
![]() |
-bibi- |
![]()
Post
#1
|
Goście ![]() |
Czy mógłby ktoś mi pomóc w jaki kolwiek sposób w napisaniu skryptu który:
- miałby pobierać co np. 5 minut dane z danej strony (chodzi mi głównie o liczbę, ludzi jacy przebywają na serwerze) - oraz rysował wykres podany w godzinach ile osób przebywa średnio na serwerze Chodzi o to, że mam stronę www.ethereal-ro.com/mycp/ strona, servera do gry Ragnarok Online, na której jest podane czy server jest Online czy Offline (to akurat umiem zrobić ;p) oraz ludność jaka w danym momencie jest na serwerze. Więc jeśli ktoś zna taki sposób to chętnie posłucham ![]() |
|
|
-Gość_nand- |
![]()
Post
#2
|
Goście ![]() |
mozesz uzyc funcji socketowych (fsock open) aby połaczyc sie do strony i ją sciągnac (trzeba sformułowac zapytanie http GET) lub też curl jeśli masz go wkompilowanego w php. Tak czy inaczej po ściągnięciu strony w formie htmla trzeba wyodrębnić to co chcesz mieć wpisac najlepiej do tabeli mysql.
Z tabeli mysql wykresy mozesz stworzyć rysując słupki za pomocą obrazka - prostokącika o wymiarach powiedzmy 1x4. Trzeba znormalizować wartości (wyrazic w stosunku do całosci - procenty) i narysowac w pętli odpowiednio słupki z odpowiedniej liczby prostokącików (obrazków) ...sorry za brak szczegółów... |
|
|
-Gość_nand- |
![]()
Post
#3
|
Goście ![]() |
jeszcze jedno... guzik zrobisz jesli nie masz mozliwosci cyklicznego uruchamiania skryptu php który bedzie zbierał te dane z jakiejs strony (np za pomocą crontaba)
|
|
|
-Gość_nand- |
![]()
Post
#4
|
Goście ![]() |
jesli nie masz całkowicie zadnego sposobu na cykliczne uruchamianie skryptu php mozesz teroetycznie zastosowac jeden tak jakby działajacy na okrągło. Oczywiscie twoj admin w php.ini ustalił max_execution_time powiedzmy na 30, ale mogłbys zrobic tak ze po 28 sekundach uruchomi sie kolejny skrypt, który po 28 sekundach uruchomi kolejny itd itd. stara stuczka. Najłatwiej zrobic ja przy pomocy CURL ale także mozna przy pomocy fukcji socketowych.
|
|
|
-bibi- |
![]() ![]()
Post
#5
|
Goście ![]() |
Wczoraj w nocy szukałem co nieco o rysowaniu wykresów w php i znalazłem ciekawe pomysły. Więc z tym nie ma problemu ;p
Może masz linki do stron opisujących te "fsock open" lub "curl", znalazłem trochę przykładów, ale są na wyższym poziomie. Mi głównie chodzi o to by pobrać liczbę userów, którzy znajdują sie na dqnej stronie co kilka minut, albo sec, tak jak napisałeś. A później by zapisywało w mysql. żeby później zrobić z tego wykres. (Skrypty wykresów już znalazłem, chyba nawet jeden na tej stronie ;p) Jeśli ktoś by przedstawił to na jakimś łatwym przykładzie, albo dał jakieś linki pomocnicze to będe bardzo wdzięczny. |
|
|
-bibi- |
![]()
Post
#6
|
Goście ![]() |
Ok, mam taki coś :]
skrypt do zapisania zawartości strony http://www.ethereal-ro.com/mycp/server_status.php
tym sposobem, zapisuje mi się źródło strony do pliku. I mam pytanie jak to przekształcić by pobierało tylko liczbę podaną w "Users Online" na tej stronie i zapisywało do pliku. No, a jeśli się nie uda zrobić czegoś takiego, jak mogę wyciągnać z pliku spoko.txt Kod <center><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <th height="28" class="title">Ethereal-RO CP</th> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="0"><tr><td align="right"><b>Login Server: </b></td><td> <font color="green">Online</font></td></td></tr><tr><td align="right"><b>Char Server: </b></td><td> <font color="green">Online</font></td></td></tr><tr><td align="right"><b>Map Server: </b></td><td> <font color="green">Online</font></td></td></tr><tr><td align="right"><b>Users Online: </b></td><td align="right">694</td></tr></table> </td> </tr> </tbody> </table></center> tylko wartoś Userów Online ;/, szukałem o tym na google i kilku stronach związanych z php, ale znalazłem tylko jak wyciągać cały plik, a nie np dany tekst. |
|
|
-Gość_nand- |
![]()
Post
#7
|
Goście ![]() |
Kod <?php $ch = curl_init("http://www.ethereal-ro.com/mycp/server_status.php"); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $strona = curl_exec($ch); curl_close($ch); $exp = explode("Users Online",$strona); $exp = explode("right\">",$exp[1]); $exp = explode("<",$exp[1]); echo "userow online $exp[0]"; ?> wiem ze zastosowanie explode tutaj jest mało profesjonalne ![]() |
|
|
-Gość_nand- |
![]()
Post
#8
|
Goście ![]() |
a co do ciagłej pracy skryptu php jesli nie masz dostepu do crontaba to jest to trudniejsze. trzeba by uzyc tak samo curl lub fsockopen lub tez polecen systemowych jesli twoj admin daje dostep do nich.
|
|
|
-bibi- |
![]()
Post
#9
|
Goście ![]() |
Dzięki za pomoc, napisałem skrypcik na przykładzie wcześniejszego.
Chodziło mi o to, że jest strona, na której znajdują się w tabeli: Logo Gildi, Nazwa Gildi, Zamek, który posiada gildia. http://www.ethereal-ro.com/mycp/guild.php Skrypt
Problem ![]() Zamiast logo gildi wyświetla mi nazwę czyli to co jest podpisane do obrazka jeśli go nie wyświetli np. Kod <img src="emblema.php?data=10034" alt="Destiny"> i tutaj problem co mam zrobić by dopisywało przed "emblema.php?data=10034" adres strony gdzie znajduję się ten plik.
|
|
|
-Gość_nand- |
![]()
Post
#10
|
Goście ![]() |
te wszystkie zamki mogłes wpisac do jednego arraya, wtedy mogłbyś ładniej to wyswietlic na koncu w petli foreach()
np Kod $exp = explode("Prontera Guindull",$strona); $exp = explode("<tr>",$exp[1]); $zamek[] = explode("</tr>",$exp[1]); a jak juz wszystko bedziesz miał w kolejnych pozycjach arraya $zamek Kod foreach($zamek as $key => $one){ $one = preg_replace("/emblema\.php/","http://www.ethereal-ro.com/mycp/emblema.php",$one"); $zamek[$key] = $one; } moga byc jakies błedy bo nie wskukałem tego do swojego php... tak czy inaczej skoro chcesz miec dopisany pełny url w img_scr to zrób to przez operacje na stringach (preg_replace, explode)... |
|
|
-Gość_nand- |
![]()
Post
#11
|
Goście ![]() |
no i nie musze chyba dodawac ze po powyszych transformacjach wynik masz w $zamek czyli
Kod echo "zamki bla bla:<br>";
foreach ($zamek as $one) echo $zamek . "<br>"; |
|
|
-Gość_nand- |
![]()
Post
#12
|
Goście ![]() |
znaczy
Kod echo "zamki bla bla:<br>";
foreach ($zamek as $one) echo $one. "<br>"; |
|
|
-bibi- |
![]()
Post
#13
|
Goście ![]() |
Dzięki, trochę poprawiłem to co napisałeś i działa ;s Wielkie dzięki, bardzo mi pomogłeś
![]() Odrazu dam kodzik co zmieniłem i jak to ogólnie wygląda ;p
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 16.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze kilka pytań zadam ;p
Co zrobić, żeby nie wyświetlało dalej strony? Na orginalnej stronie znajdują się na tej stronie, top 50 gildii oraz zamki jakie dana gildia posiada. Jak wyciagnać tylko Top 50? ;s I drugie pytanie, co zrobić, żeby wyswietlało obrazki, znaczy, wyświetla, ale gdy wejdę najpierw na orginalną stronę, chyba trzeba jakiś znacznik META dodać? :<
Próbowałem np.
Ale wtedy się nic nie wyświetla >_>, jeszcze kilka innych sposobów zastosowałem i nic. -------------------- Forum Sony Vegas Studio | Witaj w 2003 | O Pięciu Takich
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:23 |