Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]ograniczenie pobieranych wierszy
abel1
post 14.10.2016, 19:25:17
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


Mam problem z ograniczeniem pobieranych wierszy
Mam taki skrypt
  1. $strona = file_get_contents('http://www.teleman.pl/program-tv/stacje/TVP-1');
  2. echo '<p>';
  3. preg_match ('/<ul class="stationItems">(.*)<\/ul>/s', $strona, $wynik);

I fajnie pobiera niby to co chce ale pobiera dodatkowo jeszcze to co jest mi nie potrzebne
To znaczy wygląda to tak jak by nie brał pod uwagę tego że ma pobrać tylko i wyłącznie <ul>
Pobiera również to co jest dalej , a mało tego robi to dwa razy
Podpowiedzcie jak temu zapobiec , chce pobrać tylko i wyłącznie zawartość tego <ul>
Go to the top of the page
+Quote Post
trueblue
post 14.10.2016, 19:35:50
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


(.*?)

Pobaw się SimpleHTMLDom lub DOMDocument+DOMXPath.


--------------------
Go to the top of the page
+Quote Post
abel1
post 14.10.2016, 19:57:51
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


Jakieś wskazówki
Nie bardzo wiem o co w tym chodzi
Go to the top of the page
+Quote Post
trueblue
post 14.10.2016, 20:02:48
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zmień (.*) na (.*?)


--------------------
Go to the top of the page
+Quote Post
abel1
post 14.10.2016, 20:16:47
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


to nie daje efektu nadal jest to samo
Próbowałem już tego zanim napisałem
Go to the top of the page
+Quote Post
trueblue
post 14.10.2016, 20:41:25
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A to ciekawe, bo ja widzę w $matches dwie pozycje.
Pierwsza [0], to cały <ul> z zawartością (czyli trzy <li>), a w drugim [1], zawartość grupy z wyrażenia, czyli tylko wnętrze <ul> (3 <li>).


--------------------
Go to the top of the page
+Quote Post
abel1
post 14.10.2016, 20:54:44
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


no więc chyba wiem w czym problem
Ja zamieniam tą tablice na string żeby móc ją wyświetlić
  1. $string = '';
  2. $x=count($wynik);
  3. for($i=0;$i<$x;$i++)
  4. {
  5. $string .=$wynik[$i];
  6. }

i pewnie tu jest problem
Ale jak go rozwiązać
Go to the top of the page
+Quote Post
trueblue
post 14.10.2016, 21:03:08
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Możesz go rozwiązać nie tworząc go.

W $matches[0] masz całe dopasowanie, w $matches[1] wynik dopasowania pierwszej grupy. Gdybyś miał dwie grupy, to wynik drugiej byłby w $matches[2], itd.


--------------------
Go to the top of the page
+Quote Post
abel1
post 14.10.2016, 21:15:29
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


Dzięki serdeczne
A ja od wczoraj siedzę i męczę to na wszelkie sposoby jakie tylko udało mi się wymyślić
A tu się okazuje że zamiast 30 linii kodu wystarczy jedna
Jeszcze raz dzięki
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: 13.07.2025 - 21:55