Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Pobieranie danych z tagu
Forum PHP.pl > Forum > Przedszkole
qweluke
Mam taki oto fragment kodu
  1. <td>
  2. <div class="cr" style="background-color: #EEAA51;" onmouseover="ov('12.34-56.78');" onmouseout="ov('');">
  3. <br>
  4. 15*
  5. </div>
  6. </td>
  7. <td>
  8. <div class="cr" onmouseover="ov('');" onmouseout="ov('');">
  9. </div>
  10. </td>


przy użyciu tego kodu

  1. $dom = new DOMDocument;
  2. $dom->loadHTML( $site );
  3. $rows = array();
  4. foreach( $dom->getElementsByTagName( 'tr' ) as $tr ) {
  5. $cells = array();
  6. foreach( $tr->getElementsByTagName( 'td' ) as $td ) {
  7. $cells[] = $td->nodeValue;
  8. }
  9. $rows[] = $cells;
  10. }


Pobieram wartości dla poszczególnych komórek ('15*', '') dzięki czemu mam 2-wymiarową tablicę.
Teraz dla każdej komórki potrzebuję jeszcze pobrać wartość z "onmouseover" czyli "12.34-56.78".
Próbowałem także z użyciem DOM-u ale nie działa (ciągle pisze, że nie może znaleźć funkcji find)
Czy macie pomysł jak inaczej pobrać te dane? Mogą być w osobnej tablicy, byle tylko odpowiadały kolejnością tablicy pierwszej.

Mnie się już kończą pomysły.
ferrero2
Nie chce mi się szukać php-owych funkcji na stringach (wszystko jest w manualu), ale moim zdaniem, masz STRING/TABLICĘ która zawiera całą stronę.
Szukasz w tablicy/stringu POZYCJI wystąpienia ciągu znaków : "onMouseOver", przesuwasz pozycję o 11 (ilość liter w nazwie onMouseOver) i czytasz od cudzysłowa do cudzysłowa wartość. Następnie zapisujesz do tablicy.
Funkcje pomocne to :
strstr
strpos
preg-match

możesz jeszcze zerknąć na ten temat:
http://forum.php.pl/index.php?showtopic=111395

Pozdrawiam
MW
qweluke
dzieki kolego, na to nie wpadłem biggrin.gif

poniżej rozwiązanie
  1. $szukaj='onmouseover';
  2.  
  3. function strpos_recursive($haystack, $needle, $offset = 0, &$results = array()) {
  4. $offset = strpos($haystack, $needle, $offset);
  5. if($offset === false) {
  6. return $results;
  7. } else {
  8. $results[] = $offset;
  9. return strpos_recursive($haystack, $needle, ($offset + 1), $results);
  10. }
  11. }
  12.  
  13. $found = strpos_recursive($site, $szukaj);
  14. //print_r($found);
  15.  
  16. foreach ($found as $rev)
  17. if (substr($site, $rev+17, 11)!="');\" onmous")
  18. echo substr($site, $rev+17, 11);
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.