Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]ograniczenie pobieranych wierszy
Forum PHP.pl > Forum > Przedszkole
abel1
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>
trueblue
(.*?)

Pobaw się SimpleHTMLDom lub DOMDocument+DOMXPath.
abel1
Jakieś wskazówki
Nie bardzo wiem o co w tym chodzi
trueblue
Zmień (.*) na (.*?)
abel1
to nie daje efektu nadal jest to samo
Próbowałem już tego zanim napisałem
trueblue
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>).
abel1
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ć
trueblue
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.
abel1
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.