Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [funkcja] OnetAktualności :)
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
label
Jest to funkcja, która pobiera jedną z tych czterech grup aktualności tych Onetowskich i wyświetla ją w pełni konfigurowalny stylami sposób.

Jest to jeden z pierwszych moich skrypcików i wiem, że nie powinno się ich pisać tak chaotycznie. Bezsensowne zanwy zmiennych brak komentarzy etc tec biggrin.gif Ale jest to wersja początkowa i potem ją poprawie pod tym względem.

Używa się jej w bardzo prosty sposób:
  1. <?php
  2. OnetAktualnosci(3);
  3. ?>

Gdzie:
Kod
1 = Aktualności ze świata
2 = Giełda i Biznes
3 = Sport
4 = Rozrywka, muzyka, film


Na początku kodu jest konfiguracja, każdy sobie może troche dostosować funkcję do własnych potrzeb.

Jak już mówiłem to pierwszy mój skrypcik więc proszę o wyrozumiałość biggrin.gif

Oto kod:
  1. <?php
  2. ###############################
  3. ####### OnetAkualności ########
  4. ######## ver1.0 beta ##########
  5. ########## by label ###########
  6. ###############################
  7.  
  8. ///////////////////////////////
  9.  
  10. ######### KONFIGURACJA ########
  11. //---------------------------\\
  12.     //#1 CO SKRYPT MA WYŚWIETLAĆ ? 1#\\
  13.     
  14. /*  $dzial = 3;   //1 = Aktualności ze świata
  15.                   //2 = Giełda i Biznes
  16.                   //3 = Sport
  17.                   //4 = Rozrywka, muzyka, film*/
  18.                   
  19.     //#2 OBRAZEK PRZY PIERWSZYM LINKU 2#\\
  20. /**/  $szer = 20; //Szerokość obrazka wyświetlanego obok pierwszego linka :)
  21. /**/  $wyso = 20; //Wysokość obrazka wyświetlanego obok pierwszego linka :)
  22.  
  23.     //#3 STYL 3#\\
  24. /**/  $wypunktowanie = "<li> "; //Sposób wypunktowania linków, można wstawić obrazek
  25.                                 // (domyślnie <li>, zalecane użycie stylów)
  26.                                 
  27.     //#4 POZOSTAŁE 4#\\
  28. /**/  $dozwolone = '<a><img><br>'; //Grupa tagów, którezostaną przepuszczone przez skrypt
  29.                                    //oryginalnie ze strony Onet.pl
  30.                                    //Zaleca się pozostawienie na miejscu tagu <a> i <img>
  31.  
  32. /**/  $obrazek = 1;             // 1 = Wyświetaj obrazek przy pierwszym linku,
  33.                                 // 0 = nie wyświetlaj obrazka (wyświetla punkcik :)).
  34. ###############################
  35.  
  36. function OnetAktualnosci($dzial){
  37.  
  38.   global $szer;
  39.   global $wyso;
  40.   global $wypunktowanie;
  41.   global $dozwolone;
  42.   global $obrazek;
  43.   
  44. $pli = fopen('http://www.onet.pl/index.html', r);
  45.  
  46. while (!feof($pli)){
  47. $plik = fgets($pli, 999);
  48. $wynik .= $plik;
  49. }
  50.  
  51. $podziel = explode("<div\nclass=pbp5n>", $wynik);
  52.  
  53. if($dzial==4){
  54.   $elo=explode("</table></td></tr></table></div><tr><td>", $podziel[4]);
  55. }
  56.  
  57.  
  58. if($dzial==4){$siemano=$elo[0];}else{$siemano=$podziel[$dzial];}
  59. $podziel2 = explode("<table\nborder=0\ncellpadding=0\ncellspacing=0\nwidth=330\nbgcolor=\"#FFFFFF\"><tr><td\nvalign=middle><", $siemano);
  60. $yo = str_replace ("href=", "href=http://www.onet.pl/", $podziel2[0]);
  61. $yo = str_replace("src=\"", "src=\"http://www.onet.pl/", $yo);
  62. $yo = strip_tags($yo, $dozwolone);
  63. $yo = str_replace("•", "<li> ", $yo);
  64. $yo = str_replace("height=70\nwidth=70", "height=$szer\nwidth=$wyso", $yo);
  65. if($obrazek==0){
  66.     $yo = explode(".jpg\"></a>", $yo);
  67.     echo $wypunktowanie;
  68.     echo $yo[1];
  69. }
  70. else
  71. {
  72. echo $yo;
  73. }
  74. }
  75.  
  76. ?>


Pozdrawiam wszystkich forumowiczów smile.gif
TomASS
1.
Cytat
Warning: fopen(http://www.onet.pl/index.html) [function.fopen]: failed to open stream: Próba połšczenia nie powiodła się, ponieważ połšczona strona nie odpowiedziała poprawnie po ustalonym okresie czasu lub utworzone połšczenie nie powiodło się, ponieważ połšczony host nie odpowiedział.


2.
Czy tych globali nie dałoby rady czymś innym zastąpić?

3.
Może wykorzystasz kanały RSS zobacz.

4.
Rzeczywiście bezsensowne nazewnictwo.

5.
Cytat
Jest to jeden z pierwszych moich skrypcików

To gratuluje - ak na początek jest nieźle - powodzenia guitar.gif
hwao
Jak na 1 skrypt to naprawde niezle.

Proponowal bym zeby skrypt zwracal string a nie void, tzn:
return $toCoEchujesz;
lenczewski
W marę swoich umiejętnosci poprawiłem trochę skrypt label'a. Teraz zwraca "czyste" wyniki. Nie pojawia się także reklama w aktualnościach. Że można jeszcze lepiej to poprawić to jestem pewien. Pozdrawiam
  1. <?php
  2.  
  3. ###############################
  4. ####### OnetAkualności ########
  5. ######## ver1.5 beta ##########
  6. ########## by label ###########
  7. ############ mod by nv | quad #
  8.  
  9. function OnetAktualnosci($dzial) {
  10.  
  11.     $header = fsockopen("www.onet.pl", 80);
  12.     if (!$header) {
  13.         echo "Brak połączenia.<br>\n";
  14.     } else {
  15.         $send = "GET /index.html HTTP/1.1\r\n";
  16.         $send .= "Host: www.onet.pl\r\n";
  17.         $send .= "Connection: Close\r\n\r\n";
  18.  
  19.         fputs($header, $send);
  20.          $buffor = "";
  21.          while (!feof($header)) {
  22.              $buffor.= fgets($header, 1024);
  23.          }
  24.         fclose($header);
  25. }
  26.  
  27. $podziel = explode("<div\nclass=pbp5n>", $buffor);
  28.  
  29. if($dzial==4) { $elo = explode("</table></td></tr></table></div><tr><td>", $podziel[4]); }
  30. if($dzial==4) { $siemano=$elo[0]; } else { $siemano=$podziel[$dzial]; }
  31.  
  32. $podziel2 = explode("<table\nborder=0\ncellpadding=0\ncellspacing=0\nwidth=330\nbgcolor=\"#FFFFFF\"><tr><td\nvalign=middle>", $siemano);
  33.  
  34. $yo = str_replace ("href=", "target=\"_blank\" href=http://www.onet.pl/", $podziel2[0]);
  35. $yo = ereg_replace("(\r\n|\n|\r)", " ", $yo);
  36. $yo = strip_tags($yo, "<a>");
  37. $yo = ereg_replace("class=a2b|class=lsp|  | <(.*)> </a> ", "", $yo);
  38. $yo = ereg_replace("  ", " ", $yo);
  39. $yo = str_replace("•", "\n", $yo);
  40. $yo = preg_replace('/\<(.*?)\&nbsp;REKLAMA/', '', $yo); 
  41. $yo = ereg_replace("<a ", "<li><a ", $yo);
  42.  
  43. return $yo;
  44.  
  45. }
  46.  
  47. echo "<h3>Aktualności ze świata</h3>\n";
  48. echo OnetAktualnosci(1);
  49.  
  50. echo "<h3>Giełda i Biznes</h3>\n";
  51. echo OnetAktualnosci(2);
  52.  
  53. echo "<h3>Sport</h3>\n";
  54. echo OnetAktualnosci(3);
  55.  
  56. echo "<h3>Rozrywka, muzyka, film</h3>\n";
  57. echo OnetAktualnosci(4);
  58.  
  59. ?>
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.