Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wielce ciężki problem – jak pobrać dane z html i zapisać do bazy msql
głąb
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.04.2010

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


Mam taki problem próbowałem z funkcją file_get_contents ale niewiele mi z tego wyszło?

Chodzi o pobranie danych ze źródła html np. takiego:
  1. <p><span class="font8" style="font-weight:bold;">znaczenie 1, </span><span class="font8" style="font-style:italic;">-opis 1<sub> opis 1</sub> i,,</span><span class="font8"> </span><span class="font7" style="font-weight:bold;">1</span><span class="font5" style="font-weight:bold;">, </span><span class="font8"> opis 1<br/>opis 1<br/>opis 1</span></p>
  2. <p><span class="font8">1.</span><span class="font9">    </span><span class="font8" style="font-weight:bold;"> opis 1 </span><span class="font3" style="font-style:italic;">1</span><span class="font5" style="font-weight:bold;font-style:italic;">.</span><span class="font9"> </span><span class="font8"> opis 1</span></p>
  3. <p><span class="font8">2.</span><span class="font1">    </span><span class="font8" style="font-weight:bold;"> opis 1 </span><span class="font0" style="font-style:italic;">1</span><span class="font7" style="font-weight:bold;font-style:italic;">. </span><span class="font8" style="font-style:italic;">-</span><span class="font8"> </span><span class="font3">1</span><span class="font1">. </span><span class="font8"> opis 1<br/> opis 1<br/> opis 1</span></p>
  4. <p><span class="font8" style="font-weight:bold;">znaczenie 2, </span><span class="font8" style="font-style:italic;">- opis 2,</span><span class="font8"> opis 2<br/>nik.</span></p>
  5. <p><span class="font8" style="font-weight:bold;">znaczenie 3</span><span class="font8" style="font-style:italic;"> opis 3</span><span class="font8"> opis 3<br/> opis 3</span></p>

itd...
po pobraniu danych wprowadzić je do tabeli msql np. o nazwie "jeden" - kalumna "znaczenie" i kolumna "opis" czyli:
znaczenie 1 opis 1
znaczenie 2 opis 2
znaczenie 3 opis 3

itd. ?

Jeżeli ktoś by miał pomysł jak ten problem rozwiązać to byłbym niezwykle wdzięczny.
Z góry dzięki i pozdrawiam

Ten post edytował głąb 20.02.2015, 10:03:47
Go to the top of the page
+Quote Post
Aqu
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


file_get_contents pobiera tylko źródło strony, jeżeli już je masz to musisz użyj jakiegoś parsera DOM, np. http://php.net/manual/en/domdocument.loadhtml.php\
ewentualnie http://php.net/manual/en/function.preg-match-all.php
Go to the top of the page
+Quote Post
głąb
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.04.2010

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


dzięki za wskazówkę...
Na razie udało się zrobić coś takiego:

  1. $strona = file_get_contents('http://nazwa-strony');
  2. preg_match_all('/<span class=\"font8\" style=\"font-weight:bold;\"\>(.*?)<\/span>/s', $strona, $wynik, PREG_SET_ORDER);
  3. foreach ($wynik as $wynik2) {
  4. echo $wynik2[1]. "\n";
  5. }


co daje taki wynik:
znaczenie 1,
opis 1
opis 1
opis 1
znaczenie 2,
znaczenie 3


Dalej trzeba by jakoś usunąć wartości opis 1 , opis 1, opis 1, które mają być zapisane w drugiej kolumnie tabeli msql opis i przecinki ze znaczenia 1, znaczenia 2, po czym znaczenie 1, znaczenie 2, znaczenie 3 dodać do tabeli msql kolumna znaczenie

problem polega na tym, że znaczenie 1, opis 1 są między tymi samymi znacznikami <span class="font8" style="font-weight:bold;"> </span>

A jak drugą część opis 1, opis 1 , opis 1 , opis 1 (może być łącznie z html) ? wydobyć z html i dodać do bazy msql?

tak, że jeszcze droga daleka...

Jeżeli ktoś by miał pomysł jak ten problem rozwiązać to byłbym niezwykle wdzięczny.
Z góry dzięki i pozdrawiam

Ten post edytował głąb 21.02.2015, 08:44:30
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 05:53