![]() |
![]() ![]() |
![]() |
-treebla- |
![]()
Post
#1
|
Goście ![]() |
Dość krótko uczę się php i chciałbym aby ktoś mi po części wytłumaczył jak powinien wyglądać pewien skrypt. Chodzi mi o to żeby skrypt czytał listę aktualnych graczy on-line w pewnej grze i dodawał ich do bazy. Potrzebowałbym by ten skrypt robił to co minute i uaktualniał lvl. O to strona z listą aktualnych graczy:
http://www.tibia.com/community/?subtopic=w...mp;world=Aldora Nie chodzi mi o gotowy skrypt ale o jego działanie względnie jak najdokładniejsze. Skrypt ma pobrać ludzi online dodac ich do bazy(ewentualnie txt), robić to co minute i uaktualniać lvl jeżeli ktoś już w bazie jest. Z góry dziękuje za jakieś porady, ewentualnie tutoriale/artykuły gdzie mogę znaleźć podobne skrypty. Chcę jeszcze raz zaznaczyć, że nie chodzi mi o gotowy skrypt. Pozdrawiam |
|
|
-gox- |
![]()
Post
#2
|
Goście ![]() |
- laczymy sie z serwerem, pobieramy dane
- przetwarzamy za pomoca wyrazen regularnych - zapisujemy wynik do brazy |
|
|
-treebla- |
![]()
Post
#3
|
Goście ![]() |
Do pobierania danych użyć funkcji curl?
Czy potem do odzielenia tekstu mogę użyć funkcji explode? Znalazłem podobny skrypt i właśnie na tych funkcjach się opierał tylko nie wiem w jaki sposób mam odzielić każdy nick z osobna. |
|
|
-gox- |
![]()
Post
#4
|
Goście ![]() |
Do pobierania danych użyć funkcji curl? Absolutnie Nie, CURL jest bardzo wolny, uzyj file_get_contents() lub fopen() lub fsockopen() a najlepiej socket_create() Czy potem do odzielenia tekstu mogę użyć funkcji explode? Mozesz, tez tak zaczynalem, jednak z perspektywy czasu, moge Ci poradzic, żebyś zamiast rzezbic w ten sposob, od razu wzial sie za nauke wyrazen regularnych http://gajdaw.pl/php/wyrazenia-regularne-pcre-php-tutorial/ Znalazłem podobny skrypt i właśnie na tych funkcjach się opierał tylko nie wiem w jaki sposób mam odzielić każdy nick z osobna. Przy pomocy wyrazen regularnych |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Co do stron HTML to bardziej polecam domdocument" title="Zobacz w manualu PHP" target="_manual i domxpath" title="Zobacz w manualu PHP" target="_manual lepiej zadziala niz wyrazenia regularne- latwiej bedzie Ci przejsc pomiedzy kolejnymi rekordami, no a jezeli bedziesz sie laczyc ze strona co minute to podejrzewam ze Ci odetna dostep z tego ip albo mozesz miec problemy radze sie laczyc co pol godziny przez curl z wysylaniem innego ip (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
-gox- |
![]()
Post
#6
|
Goście ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
nie napisalem szybciej, tylko lepiej w sensie ze latwiej (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) sproboj sobie tablice sfetchowac tabela z pomoca wyrazen, a zrob to samo z domxpath
a teraz wyrazenia, nawet mi sie pisac nie chce bo za dlugie to (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) //@-gox- No to pokaz mi to na wyrazeniach bo ciekaw jestem, przetestujemy tez wydajnosc ;], z mila chcecia zoabcze jak to sie klasuje, bo wyrazenia az tak super wydajne z tego, co wiem to nie sa, nie w php (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował deirathe 27.10.2008, 11:08:33 |
|
|
-gox- |
![]()
Post
#8
|
Goście ![]() |
Moze i dlugie, ale jaka satysfakcja i wydajnosc..
szczegolnie jak za duzo wycofan nie narobisz... |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 012 Pomógł: 109 Dołączył: 26.09.2003 Skąd: nexis.pl Ostrzeżenie: (0%) ![]() ![]() |
Zamiast printf" title="Zobacz w manualu PHP" target="_manual możesz zrobić z danymi co tylko chcesz. Jeśli chodzi o cykliczną aktualizację danych poczytaj o cron. radze sie laczyc co pol godziny przez curl z wysylaniem innego ip (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Niby jak chcesz zmodyfikować IP? Ten post edytował nexis 27.10.2008, 11:31:09 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
//ok ip rzeczywiscie nie mozna zmienic, moj blad Ten post edytował deirathe 27.10.2008, 11:50:18 |
|
|
-treebla- |
![]()
Post
#11
|
Goście ![]() |
Dziękuje za pomoc... Co do łączenia musi to być 5-10 minut bo co tyle serwer odświeża tą listę. Bardzo mi pomogliście powyższymi postami teraz biorę się za dokładne zrozumienie wszystkiego co napisaliście i próbuje zacząć skrypt.
Pozdrawiam |
|
|
-xddd- |
![]()
Post
#12
|
Goście ![]() |
a szybko to będzie działało jak będzie zapis co 1min. ?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 23 Dołączył: 2.10.2007 Skąd: Słupsk Ostrzeżenie: (0%) ![]() ![]() |
Poza tym zapomnieliście wspomnieć o CRONie, żeby skrypt sam się wykonywał co określony czas.
http://en.wikipedia.org/wiki/Cron |
|
|
-gox- |
![]()
Post
#14
|
Goście ![]() |
zamiast crona uzywam tzn. loopa:
Bo crona moge 1 odpalic na tym fantastycznym hostingu w nazwie. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 23 Dołączył: 2.10.2007 Skąd: Słupsk Ostrzeżenie: (0%) ![]() ![]() |
Hmm, ciekawe rozwiązanie, szczerze nigdy się z nim nie spotkałem, a na pewno pomoże (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
-Treebla- |
![]()
Post
#16
|
Goście ![]() |
CODE <?php $url = 'http://www.tibia.com/community/?subtopic=whoisonline&world=Aldora'; $subject = file_get_contents($url); $pattern = '/<TR BGCOLOR=.*><TD WIDTH=.*><A HREF=".*">(.*)</A></TD><TD WIDTH=.' . '*>(.*)</TD><TD WIDTH=.*>(.*)</TD></TR>/U'; preg_match_all($pattern, $subject, $matches); $count = count($matches[0]); for ($i = 1; $i < $count; $i++) { $name = $matches[1][$i]; $level = $matches[2][$i]; $vocation = $matches[3][$i]; printf('%s, %d, %s<br />' . PHP_EOL, $name, $level, $vocation); } ?> Ten skrypt zrozumiałem, poczytałem o funkcji preg_match_all oraz o wyrażeniach regularnych. Nie ukrywam, że nie wszystko jeszcze w pełni rozumiem, ale najszybciej się uczę próbując tworzyć różne skrypty. Dla testu wrzuciłem ten skrypt powyżej jednak wywala mi taki błąd "Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '>' in /home/***/domains/***.pdg.pl/public_html/index.php on line 7" Adres wygwiazdkowałem bo to nie istotne. Próbowałem coś z tym zrobić lecz ciągle nie działa. W czym może być problem? |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 3 Dołączył: 28.06.2008 Skąd: PL Ostrzeżenie: (0%) ![]() ![]() |
czy masz może już ten skrypt? Czy ci dobrze działa?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:27 |