Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_match i wydobycie tabeli z kodu html
Grzesiek23
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

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


Pobieram kod html pewnej strony i chciałbym do zmiennej wrzucić jedynie tabelę, która wygląda mniej więcej tak:

...
<table class="messages largepadded">
<trd><td>...</td></tr>
....
</table>
...


Napisałem taką funkcję:

  1. function gettable($page)
  2. {
  3. preg_match("@<table class=\"messages largepadded\">(.*?)<\/table>@i", $page, $w);
  4. return $w[0];
  5. }



Ale przy wywołaniu tej funkcji:

  1. echo(gettable($s));


Otrzymuję błąd:
PHP Notice: Undefined offset: 0 in C:\inetpub\wwwroot\test.php on line 13


Pomoże ktoś?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Hmm nie wiem czemu, ale dopiero to zadziałało:
Ponieważ domyślnie wyrażenia regularne działają od pierwszego znaku do pierwszego wystąpienia znaku końca linii. Modyfikator "s" zmienia to zachowanie.

Co do drugiego pytania, to wyrażenie będzie miało mniej-więcej taką formę:
Kod
#<td>.*?has transfered .{,10} to your account.*?</td>#s
Ewentualnie, jeżeli zawsze jest zapis: LICZBA + PLN/EUR/USD to możesz dać:
Kod
\d+ (?:PLN|USD|EUR)
Zamiast tego
Kod
.{,10}
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 18:17