Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Pobieranie danych z tagu
qweluke
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 25.03.2010
Skąd: Radom

Ostrzeżenie: (10%)
X----


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.

Ten post edytował qweluke 20.03.2012, 12:36:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ferrero2
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


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


--------------------
---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA !
Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ
Go to the top of the page
+Quote Post
qweluke
post
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 25.03.2010
Skąd: Radom

Ostrzeżenie: (10%)
X----


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);
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 Aktualny czas: 20.08.2025 - 21:56