Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Jak poprawnie napisać wyrażenie regularne
dominik_fil
post 30.07.2014, 12:35:07
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 17.10.2012

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


Witam,
na forum znalazłem taki kod, w wyrażenie regularne zmieniłem element odnośnie dla tabeli ze strony pge.
Ładnie mi wyświetla całą tabelę.
Proszę o pomoc jak teraz to wyrażenie zmienić, żeby wyświetlało tylko te wiersze w tabeli w których jest informacja np. miasto lub gmina nieważne, ale słowo - Ostrów Mazowiecka. W tabeli występują na dziś 4 takie wiersze.
A pozostałych wierszy tabeli dla innych gmin i miast, żeby nie wyświetlało.

  1. <?php
  2. $strona = file_get_contents('http://www.warszawa.pgedystrybucja.pl/index.php?pid=198');
  3.  
  4. echo '<pre>';
  5. preg_match('/<table style="BORDER-COLLAPSE: collapse" border="0" cellspacing="0" cellpadding="0" width="646">(.*)<\/table>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku
  6. var_dump($wynik);
  7. ?>


Ten post edytował dominik_fil 30.07.2014, 12:36:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
fate
post 30.07.2014, 13:30:59
Post #2





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

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


  1. preg_match('/<table style="BORDER-COLLAPSE: collapse" border="0" cellspacing="0" cellpadding="0" width="646">(.*)Ostr(.*)Mazowiecka(.*)<\/table>/s', $strona, $wynik);


Zobacz czy wyświetliło Ci 4, zaznaczam że nie jest to zrobione idealnie


--------------------
Go to the top of the page
+Quote Post
dominik_fil
post 30.07.2014, 13:57:07
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 17.10.2012

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


Nie to, nie zmieniło niestety nic. Nadal wyświetlana jest pełna tabela.

Jak chcę wyświetlić wiersze tabeli z nazwą np. Ostrów Mazowiecka
To może jakoś to do tego wyrażenia regularnego trzeba włączyć"

<tr style="HEIGHT: 22.05pt">


Tylko jak?



Ten post edytował dominik_fil 30.07.2014, 14:10:48
Go to the top of the page
+Quote Post
fate
post 30.07.2014, 14:43:04
Post #4





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

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


  1. preg_match('/<tr style="HEIGHT: 22.05pt">(.*)Ostr(.*)Mazowiecka(.*)<\/tr>/s', $strona, $wynik);


tak samo poszukaj analogii, to pewnie już Ci zatrybi aaevil.gif


--------------------
Go to the top of the page
+Quote Post
SmokAnalog
post 30.07.2014, 15:39:02
Post #5





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Użyj PHP DOM albo np. phpQuery, parsowanie HTML-a wyrażeniami regularnymi to przeważnie zły pomysł.
Go to the top of the page
+Quote Post
dominik_fil
post 3.08.2014, 10:51:57
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 17.10.2012

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


Pewnie masz rację, ale ja nie za bardzo się na tym znam.
A to co już mam to pobiera mi już samą tabelkę w HTMLu z danymi ze strony.
I teraz nie weim jak należy wyciągnąć tylko z niej te wiersze które ja chcę.

Jak daje tu
preg_match('/<table

to ładnie całą tabelę pobiera,

a jak dam
preg_match('/<tr

to też wszystko wyciąga tylko, że już nie są dane poukładane w tabeli.

TO może jakoś je dałoby się teraz wrzucić ponownie do tabeli i tylko te dane, które są potrzebne?
Go to the top of the page
+Quote Post

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: 19.07.2025 - 19:37