Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]preg_match_all + foreach, Problem.
Diemorko
post 25.10.2013, 00:24:51
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


Witam, oto mój skrypt chcę by zwracał mi pobrane dane w tej formie:
Cytat
Array
(
[0] => Bubble
[1] => female
[2] => Knight
[3] => 273
[4] => Refugia
[5] => Thais
[6] => Free Account
)


Oto skrypt:
  1. <?php
  2. $site = file_get_contents('http://www.tibia.com/community/?subtopic=characters&name=Bubble');
  3. preg_match_all('/<td>([a-zA-Z0-9 ]+)</td>/is', $site, $matches, PREG_SET_ORDER);
  4.  
  5. foreach ($matches as $match) { $data[] = $match[1]; }
  6.  
  7. echo '<pre>';
  8. print_r($data);
  9. echo '</pre>';
  10. ?>


I oto błędy tongue.gif
Cytat
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 't' in /home/test.php on line 3

Warning: Invalid argument supplied for foreach() in /home/test.php on line 5


Bardzo proszę o pomoc :-)
Go to the top of the page
+Quote Post
_Borys_
post 25.10.2013, 01:45:13
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


'/<td>([a-zA-Z0-9 ]+)<\/td>/is'
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 09:00:41
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


Dzięki wielkie! Teraz napotkałem kolejny problem mianowicie:

  1. $page = file_get_contents("http://www.tibiarip.webd.pl/enter.php?login=k43bwi54&haslo=kaziulak15");
  2. $scroll = "|Available Premium Scrolls:</b>   (.*?)<div>|i";
  3. // get page source
  4. preg_match($scroll, $page, $scroll);

Oto co mi zwraca print_r :
Array ( )
Pustą tablicę, ktoś może wie jak to naprawić?

Ten post edytował Diemorko 25.10.2013, 09:10:24
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 09:03:43
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zapewne zawartość strony nie pasuje do wyrażenia regularnego. Bez prawidłowego adresu, z którego pobierasz dane (lub samych danych) nikt nie będzie w stanie Ci pomóc.
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 09:10:56
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


Dodałem prawidłowy $page
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 09:15:53
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zobacz co masz w zmiennej $page, bo chyba nie taką zawartość, z której chciałbyś wyciągnąć dane. Po drodze następuje przekierowanie.
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 09:19:29
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


To chyba nie ma nic do rzeczy, bo jak pobieram inne dane to smiga to normalnie biggrin.gif Jakieś inne pomysły?
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 09:25:53
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ponawiam: co masz w zmiennej $page? Sprawdź czy aby na pewno takie informacje, z których możesz wyłuskać internesujące Cię dane.
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 09:31:32
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


ymmm, nie rozumiem.

Zobacz sam:
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 09:35:46
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. $page = file_get_contents("http://www.tibiarip.webd.pl/enter.php?login=k43bwi54&haslo=kaziulak15");
  2. $scroll = "|<b>Available Premium Scrolls:</b>&XXX#160;&XXX#160;&XXX#160;([0-9]+)<div|i";
  3. // get page source
  4. preg_match($scroll, $page, $scroll);
  5.  
  6. var_dump($scroll);

Usuń z kodu wszystkie XXX. Dodałem, bo forum traktuje to jako encje.
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 09:42:31
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


Zwraca mi taką wartość:
array(0) { }
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 09:50:24
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Usunąłeś XXX? Bo u mnie zwraca:
Kod
array(2) { [0]=> string(56) "Available Premium Scrolls:   0 string(1) "0" }
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 09:54:06
Post #13





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


Tak tak strona jest ok i nie wiem czemu nie dziala :-/ ahh

Jednak działa tongue.gif wczesniej nie dodałem  , dzięki wielkie.

Ten post edytował Diemorko 25.10.2013, 09:57:22
Go to the top of the page
+Quote Post
jackraymund
post 25.10.2013, 09:58:47
Post #14





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


<?php $page = file_get_contents("http://www.tibiarip.webd.pl/enter.php?login=k43bwi54&haslo=kaziulak15");
$scroll = "|<b>Available Premium Scrolls:</b>   (.*?)<div|i";
// get page source
preg_match($scroll, $page, $scroll);
echo bin2hex($scroll[0]);
//26233136");
//&#16
var_dump($scroll);
?>


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 10:07:00
Post #15





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


Jak pozyskac samą liczbe ? jak to wywołac? tongue.gif
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 10:09:04
Post #16





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Trochę samodzielności... albo nauki o tablicach.
Go to the top of the page
+Quote Post
jackraymund
post 25.10.2013, 10:42:48
Post #17





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


ahh, musiałem wyłączyć komputer, i na szybko wrzuciłem sam kod usuwając co napisałem, lecz forum konwertuje ten znak
najlepiej szukać cały string, jeżeli coś nie jest pewne
$scroll = "|<b>Available Premium Scrolls:</b>(.*?)<div|";
potem wartośc z tego, czyli $scroll[0] przekonwertować przez bin2hex i sprawdzać po kolei znak z tablicy znaków
http://www.utf8-chartable.de/
ja znalazłem że pomiędzy : a 0 występuje 3 razy  


w sumie pewnie i tak gówno cię to interesuje, ale jest to najlepsza wg mnie metoda aby odkryć ukryte znaki które przeglądarka nam konwertuje do rzeczywistej postaci
cały kod
http://wklej.to/9363Z
wrzucam na wklejke bo na forum się nieda haha.gif

Ten post edytował jackraymund 25.10.2013, 11:20:43


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
Diemorko
post 25.10.2013, 12:15:00
Post #18





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


wywołałem $scroll[1]
ale zwraca mi &nXbsp;&nXbsp;&nXbsp;0
dodałem X żeby forum nie zjadło &nXbsp;

  1. $ready_scroll = explode("&nbsp;&nbsp;&nbsp;", $scroll[1]);


niestety nie pomada

Ten post edytował Diemorko 25.10.2013, 12:18:24
Go to the top of the page
+Quote Post
phpion
post 25.10.2013, 13:37:08
Post #19





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Sprawdziłem kod, który Ci wkleiłem i prawidłowo zwraca dane. Wywołaj sobie:
  1. var_dump($scroll[1]);

Jest tam liczba bez żadnych śmieci.
Go to the top of the page
+Quote Post
Diemorko
post 26.10.2013, 01:17:34
Post #20





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2009

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


string(1) "0"

jak się reszty pozbyc by było samo 0, nie ogarniam hehe
Go to the top of the page
+Quote Post
fate
post 26.10.2013, 05:59:29
Post #21





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


  1. echo $scroll[1];


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 27.10.2013, 00:54:35
Post #22





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Kurde, gdy chcialem sprawdzic na innym koncie to nic nie zwraca :-/
Sami sprawdzcie:
  1. $page = file_get_contents("http://www.tibiarip.webd.pl/enter.php?login=marion221&haslo=marion123");
  2. $scroll = "|<b>Available Premium Scrolls:</b>&XXX#160;&XXX#160;&XXX#160;([0-9]+)<div|i";
  3. // get page source
  4. preg_match($scroll, $page, $scroll);
  5.  
  6. var_dump($scroll)

usuncie XXX ;p
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 16:25