Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Parsowanie tekstu z HTML
Forum PHP.pl > Forum > PHP
jooni22
Witam,
piszę mały skrypt w PHP, a że dopiero się uczę to potrzebuję pomocy. Skrypt mianowicie ma parsować różne wartości ze strony zewnętrznej i je wyświetlać na mojej a potem dorzucę jakieś operacje na tych wartościach, ale na początku się zawiesiłem w parsowaniu.
<tr><td>wartosc1</td><td>72.9</td></tr><tr><td>wartosc 2</td><td>105.9</td><tr><td>Data</td><td>22-12-16</td></tr><tr><td>pogoda</td><td>zła</td>
Na stronie jest pełno tr i td a mnie interesują tylko, niektóre wartości, w jaki sposób wyciągnąć wartości po zawartości tekstu?.
Np. skrypt szuka gdzie na stronie znajduje się wartość1 i ściąga wartość z kolumny obok albo cała tabele, lub wiersz/klumnę, zaś pomija tabele z datą i pogodą.
Po tagach tego nie wyciągnę, ponieważ tagi nie posiadają klas, chyba że wyliczyć który tag <td> posiada tekst wartość1 i wtedy go ściągnąć, ale nie wiem czy to dobre rozwiązanie ?.
mlawnik
Jeżeli struktura tabeli się nie zmienia, to można wyliczyć.
Polecam bibliotekę simplehtmldom.
(Jest na sourceforge: simplehtmldom.sourceforge.net, ale w tej chwili sourceforge ma problemy jakieś.)

Można też np. w inspektorze chrome kliknąć prawym i dać "copy XPath".
jooni22
Znalazłem rozwiązanie
  1. $doc = new DOMDocument();
  2. $doc->loadHTML($YOUR_HTML);
  3. $xpath = new DOMXpath($doc);
  4. $lis = $xpath->query("//li/text()");
  5. if (!is_null($lis)) {
  6. foreach ($lis as $li) {
  7. if (preg_match('~^Value: (.+?)$~', $li->nodeValue, $m)) {
  8. print_r($m);
  9. }
  10. }
  11. }
mlawnik
DOMDocumentem też można. wink.gif

Chwali się twoje google-fu wink.gif
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.