Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Curl pobieranie terści ze strony i wysyłanie do bazy mysql
Forum PHP.pl > Forum > PHP
ejot
Witam, potrzebuje ze strony pobrać dane i zapisać w bazie mysql.

<?php
$c = curl_init();
curl_setopt($c, CURLOPT_URL,'http://www.eco-institute.pl/programy.html');
curl_exec($c);
?>

Powyższy kod pobiera mi całą stronę. Nie wiem jak pobrać poszczególne <div class="right"> i wrzucić do mysql.
Proszę o pomoc.
Xelah
Interesuje cię DOM i XPATH.
http://php.net/manual/en/book.dom.php

http://php.net/manual/en/class.domxpath.php

http://www.w3schools.com/xpath/default.asp

PS. Poszukaj na tym formu. Temat był już przerabiany dziesiątki razy.
ejot
Witam mam cos takiego czy mysle w dobrym kierunku - prosze o pomoc.

<?php
$c = curl_init();
curl_setopt($c, CURLOPT_URL,'http://www.eco-institute.pl/programy.html');
curl_exec($c);

$file = $DOCUMENT_ROOT. "http://www.eco-institute.pl/programy.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);

$xpath = new DOMXpath($doc);

$elements = $xpath->query("div class="right"");

$db = new Mysqli("localhost", "root", "", "");
$elements = (int)$_POST['divtxt'];
$query = "INSERT INTO data SET mydata='$divtxt'";
$db->query($query);
}
?>
nospor
1) Uzywaj bbcode do wstawianego kodu na forum.
2) A zmienną $divtxt to skad wytrzasnales?
ejot
Witam czy mógłby ktos mnie naprowadzić co i jak bo sie pogubiłem.

Potrzebuje skrypt który pobierze mi odpowiedznie dane html ze strony i wrzuci je do bazy mysql, prosze om pomoc.
rad11
I skad ktos ma wiedziec jakie dane potrzebujesz?
ejot
np ze strony http://www.eco-institute.pl/programy.html :

<h1 class="ng"> Programy</h1>

<div class="text">
rad11
  1. $html = file_get_contents("http://www.eco-institute.pl/programy.html");
  2. preg_match_all("'<h1 class=\"ng\">(.*?)</h1>'si", $html, $header);
  3. preg_match_all("'<div class=\"text\">(.*?)</div>'si", $html, $div);
  4.  
  5. var_dump($header[0][0]);
  6. var_dump($div[0][0]);
ejot
Dzięki za kod a jak zrobić to z CURL.
rad11
A czemu koniecznie chcesz uzyc do tego CURL ? Przeciez nie musisz wysylac nic POST`em ani GET`em?

  1. function get_data($url) {
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $data = curl_exec($ch);
  6. preg_match_all("'<h1 class=\"ng\">(.*?)</h1>'si", $data, $header);
  7. preg_match_all("'<div class=\"text\">(.*?)</div>'si", $data, $div);
  8.  
  9. curl_close($ch);
  10.  
  11. return array_merge($header[0][0], $div[0][0]);
  12. }
  13. get_data('http://www.eco-institute.pl/programy.html');
ejot
Chce wysłać to do lokalnej bazy danych mysql.
rad11
Do tego nie jest Ci potrzebny curl skoro to baza lokalna.
ejot
Potrzebuje skrypt który pobierze poniższe wartości ze strony Curlem zapętli dla <div id="container-id"> <span>nr:<br /> 4</span></div> wrzuci do mysql i wyświetli z moje bazy na mojej stronie. Prosze o pomoc bo nic mi nie wychodzi.

  1. 1.
  2. <div id="container-media">
  3. <div style="height: 400px;">
  4. <img src="media/1.png" />
  5. </div>
  6.  
  7. 2.
  8. <div id="container-id">
  9. <span>nr:<br /> 4</span>
  10. </div>
  11.  
  12. 3.
  13. <div id="container-content">
  14. <span>questionmark.gifquestionmark.gif</span>
  15. </div>
  16.  
  17.  
  18. 4.
  19. <tr class="answerRow">
  20. <td>
  21. <div class="blueSquare qAnswer">A</div>
  22. </td>
  23. <td style="vertical-align: middle; ">
  24. <div class="qAnswer">aaa</div>
  25. </td>
  26.  
  27. 5.
  28. <tr class="answerRow">
  29. <td>
  30. <div class="blueSquare qAnswer">B</div>
  31. </td>
  32. <td style="vertical-align: middle;">
  33. <div class="qAnswer">bbb</div>
  34. </td>
  35. </tr>
  36.  
  37. 6.
  38. <tr class="answerRow">
  39. <td>
  40. <div class="blueSquare qAnswer">C</div>
  41. </td>
  42. <td style="vertical-align: middle;">
  43. <div class="qAnswer">ccc</div>
  44. </td>


zapłace ejot2@op.pl

Proszę o pomoc ejot2@op.pl zapłace za gotowy skrypt.
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.