Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem nowicjusza z regexp
nitro11
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Witam,

Od niedawna bawię się z php.
Ostatnio bardzo zainteresował mnie cURL i próbuję się go nauczyć, ale mam pewne problemy.

Chciałem za pomocą cURL wyciągnąć sobie ze strony http://www.rmf.fm/au/?a=poplista
3 najpopularniejsze utwory, robię to tak:


  1. $url = 'http://www.rmf.fm/au/?a=poplista';
  2.  
  3.  
  4.  
  5. echo '<br/><br/>';
  6. $ch_e=curl_init($url);
  7. define('USER_AGENT', 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.0.6');
  8. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($ch_e, CURLOPT_FOLLOWLOCATION, 1);
  10. curl_setopt($ch_e, CURLOPT_USERAGENT, USER_AGENT);
  11. curl_setopt($ch_e, CURLOPT_SSL_VERIFYPEER, FALSE);
  12. curl_setopt($ch_e, CURLOPT_SSL_VERIFYHOST, 2);
  13. curl_setopt($ch_e, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  14. curl_setopt($ch_e, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
  15. $nazwa=curl_exec($ch_e);
  16.  
  17.  
  18.  
  19. $wykonawca3 = '/<A HREF="\/muzyka(.+?)">(.+?)<\/A><br>(.+?) &nbsp/';
  20. preg_match_all($wykonawca3, $nazwa, $wyk3);
  21.  
  22.  
  23. for ($i=0; $i<3; $i++) {
  24.  
  25. $wyk3reg = '/<A HREF="(.+?)">(.+?)<\/A><br>(.+?) &nbsp/';
  26. preg_match_all($wyk3reg, $wyk3[0][$i], $wyk4);
  27.  
  28. //print_r($wyk4);
  29.  
  30. $wy=$wyk4[2][0];
  31. $ty=$wyk4[3][0];
  32.  
  33. echo $wy.' - '.$ty.'<br/>';
  34.  
  35.  
  36. }




W wyniku dostaję:

  1. <br/><br/>Travie McCoy feat. Bruno Mars - Billionaire<br/><IMG SRC="/au/poplista/img/teledysk.gif" BORDER=0></A> </TD><TD WIDTH=25></TD><TD WIDTH=60><A HREF="#" onClick="javascript -void window.open('/au/poplista/glosowanie.html?g=2&amp;idn=48101&amp;p=0','glospoplista','align=center,toolbar=no,status=no,location=no,directories=no,resizable=yes,scrol
    lbars=no,width=380,height=280,menubar=no');"
    ><IMG SRC="/au/poplista/img/up.gif" HSPACE=5 ALT=""></A><A HREF="#" onClick="javascript -void window.open('/au/poplista/glosowanie.html?g=1&amp;idn=48101&amp;p=0','glospoplista','align=center,toolbar=no,status=no,location=no,directories=no,resizable=yes,scrol
    lbars=no,width=380,height=280,menubar=no');"
    ><IMG SRC="/au/poplista/img/down.gif" ALT=""></A></TD></TR><TR CLASS="poplista-row poplista-row-back2"><TD WIDTH=45 align=center><IMG alt="6912" SRC="/main/img/popnum2.gif"></TD><TD WIDTH=85><img src="http -//doc.rmf.pl/media/img_muzyka/wykonawca/6/6912_x.jpg" width=70 height=70 alt=""></TD><TD WIDTH=475><A HREF="/muzyka/biografia,6912,Pectus.html">
    Pectus - Oceany<br/>OneRepublic - Marchin On<br/>



Ale nie pasuje mi ta część:

  1. <IMG SRC="/au/poplista/img/teledysk.gif" BORDER=0></A> </TD><TD WIDTH=25></TD><TD WIDTH=60><A HREF="#" onClick="javascript -void window.open('/au/poplista/glosowanie.html?g=2&amp;idn=48101&amp;p=0','glospoplista','align=center,toolbar=no,status=no,location=no,directories=no,resizable=yes,scrol
    lbars=no,width=380,height=280,menubar=no');"
    ><IMG SRC="/au/poplista/img/up.gif" HSPACE=5 ALT=""></A><A HREF="#" onClick="javascript -void window.open('/au/poplista/glosowanie.html?g=1&amp;idn=48101&amp;p=0','glospoplista','align=center,toolbar=no,status=no,location=no,directories=no,resizable=yes,scrol
    lbars=no,width=380,height=280,menubar=no');"
    ><IMG SRC="/au/poplista/img/down.gif" ALT=""></A></TD></TR><TR CLASS="poplista-row poplista-row-back2"><TD WIDTH=45 align=center><IMG alt="6912" SRC="/main/img/popnum2.gif"></TD><TD WIDTH=85><img src="http -//doc.rmf.pl/media/img_muzyka/wykonawca/6/6912_x.jpg" width=70 height=70 alt=""></TD><TD WIDTH=475><A HREF="/muzyka/biografia,6912,Pectus.html">



Jednak nie wiem jak się jej pozbyć.

W ogóle to jakaś dziwna sprawa bo wyrażenie regularne którego używam:
$wyk3reg = '/<A HREF="(.+?)">(.+?)<\/A><br>(.+?) &nbsp/';

Powinno działać po dodaniu na końcu
$wyk3reg = '/<A HREF="(.+?)">(.+?)<\/A><br>(.+?) &nbsp <SPAN ID/';

bo tak jest na stronie, jednak to wyrażenie nie działa.

Proszę o pomoc.

Ten post edytował nitro11 30.08.2010, 13:28:39
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 06:51