Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wyrazenia regularne, Jak wyciac dany kod z innej strony www
webspy
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Witam, czytałem trochę o wyciąganiu danych ze strony, udało mi się wyciągnąć kod źródłowy z danej strony ale nie mogę sobie poradzić z wyrażeniami regularnymi (IMG:style_emoticons/default/sad.gif) jestem początkującym jeśli chodzi o php. Podany kod znalazłem właśnie na tej stronie.

  1. <?
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, 'http://adres strony');
  4. curl_setopt($curl, CURLOPT_REFERER, "http://www.google.pl/");
  5. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
  8. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  9. curl_setopt($curl, CURLOPT_HEADER, 0);
  10. $strona = curl_exec($curl);
  11. curl_close($curl);
  12.  
  13.  
  14. preg_match_all('wyrazenie regularne', $strona, $baza);
  15.  
  16. echo $baza[1][0];
  17. ?>
  18.  


Chciałbym z ze strony wyciągnąć dane które wyglądają nastepująco:

  1. <tr class="rowEven clickable">
  2. <td class="cellPhoto">
  3. <img src="http://photos02.allegroimg.pl/photos/64x48...74/52/868745275" width="64" height="48" alt="AGREGAT PRĄDOTWÓRCZY 3 KW 2800W!! FV SKLEP" title="AGREGAT PRĄDOTWÓRCZY 3 KW 2800W!! FV SKLEP"/>
  4. </a>
  5. </td>
  6. <td class="cellName">
  7. class="alleLink">
  8. <span>AGREGAT PRĄDOTWÓRCZY 3 KW 2800W!! FV SKLEP</span></a>
  9. </td>
  10. <td class="cellPrice"><img src="http://static.allegrostatic.pl/site_images...buy_now_ico.gif" alt="" title="" class="tomiddle" /> 899,00 zł</td>
  11. <td class="cellTrans">929,00 zł</td>
  12. <td class="cellOffer">-</td>
  13. <td class="cellTime">7 dni</td>
  14. </tr>
  15.  


Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


z tego co napisałeś nie wiele, można się dowiedzieć, ponieważ nie podałeś całego kodu strony (IMG:style_emoticons/default/winksmiley.jpg)

podałeś, co chcesz wyciągnąć, ale co nam to daje?

na razie mogę polecić:
http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
Go to the top of the page
+Quote Post
webspy
post
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


To zapytam inaczej, w jaki sposób wyświetlić wszystkie znaki znajdujące się między:
  1. <td class="cellName"> ....Tylko to chciałbym mieć w zmiennej.... </td>


(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif)


Go to the top of the page
+Quote Post
kangur91
post
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 27.07.2008

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


Jedyny sposób jaki przychodzi mi na myśl to użyć javascript'a, a to co wyciągnie przesłać np. JSON'em do php. Można użyć ajaxa.

Ale z pewnością ktoś zna lepszy i szybszy sposób;]
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. $text = '<td class="cellName"> ....Tylko to chciałbym mieć w zmiennej.... </td>';
  2. $patt = '#<td class="cellName">(.+)</td>#';
  3. preg_match($patt, $text, $match);
  4. print_r($match);
Go to the top of the page
+Quote Post
webspy
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


W sumie działa dzięki już troszkę rozumiem, ale jak mam więcej to nie działa:

  1. $text = '<td class="cellPhoto"><a href="http://jakas strona www.html"><img src="http://www.foapodi.foto.pl/340857203" width="64" height="48" alt="dddd" title=""/>
  2. </a></td>';
  3.  
  4. $patt = '#<td class="cellPhoto">(.+)</td>#';
  5.  
  6. preg_match($patt, $text, $match);
  7.  
  8. print_r($match);


Wiem już czego się zaczepić, pokombinuje trochę i może coś wymyślę.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. $text = '<td class="cellPhoto"><a href="http://jakas strona www.html"><img src="http://www.foapodi.foto.pl/340857203" width="64" height="48" alt="dddd" title=""/>
  2. </a></td>';

nie wiem dlaczego, ale zadziała tylko jeśli
  1. $text = '<td class="cellPhoto"><a href="http://jakas strona www.html"><img src="http://www.foapodi.foto.pl/340857203" width="64" height="48" alt="dddd" title=""/></a></td>';
Go to the top of the page
+Quote Post
webspy
post
Post #8





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Dzięki, działa, już sobie poradzę z resztą (IMG:style_emoticons/default/smile.gif)
Dzięki.
Go to the top of the page
+Quote Post
oscar17
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

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


Cytat(webspy @ 4.01.2010, 16:44:22 ) *
W sumie działa dzięki już troszkę rozumiem, ale jak mam więcej to nie działa:


bo masz znaki nowej linii wewnątrz $text, coś takiego powinno zadziałać:

  1. $text = '<td class="cellPhoto"><a href="http://jakas strona www.html"><img src="http://www.foapodi.foto.pl/340857203" width="64" height="48" alt="dddd" title=""/>
  2. </a></td>';
  3.  
  4. $patt = '#<td class="cellPhoto">(.+)</td>#s'; //tutaj dodany modyfikator s
  5.  
  6. preg_match($patt, $text, $match);
  7.  
  8. print_r($match);

poczytaj więcej o modyfikatorach tutaj: http://pl.php.net/manual/pl/reference.pcre...n.modifiers.php
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 - 13:53