Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: proszę o sprawdzenie skryptu
Forum PHP.pl > Forum > PHP
mksdziegiel
mam skrypt do pogody i wyskakuje mi błąd
Kod
Fatal error: Call to undefined function: curl_init() in c:\usr\krasnal\www\pogoda.php on line 14




Plik pogoda.php
  1. <?php
  2.  
  3.  
  4. // Plik gdzie zapisac z tylko tobie znana nazwa! (daj prawa do pliku chomd o+rw plik)
  5. $filename = &#092;"pogoda4444.inc\";
  6.  
  7. // Strona z jakiej pobieramy! Uwaga wystarczy zmienic kod miasta na twoj!
  8. $site_aura = &#092;"http://pogoda.onet.pl/0,1228,38,miasto.html\";
  9.  
  10. // Jak w linii jest ten ciag wyrazow to zaczynamy szukac!
  11. $fstart = 'Teraz';
  12.  
  13. // Zapisujemy strone do tablicy $stronka
  14. $ch = curl_init();
  15. curl_setopt ($ch, CURLOPT_URL, $site_aura);
  16. curl_setopt ($ch, CURLOPT_HEADER, 0);
  17. curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);
  18. $output = curl_exec($ch);
  19. if (curl_error($ch)) sru('Error: Nie moge się połaczyć ze stroną!');
  20. $stronka = explode(&#092;"n\",$output);
  21. curl_close($ch);
  22.  
  23. $znalazlem = &#092;"0\";
  24. $ile = &#092;"0\";
  25.  
  26. // Funckja do wyswietlania bledu i dodatkowo zapisuje w pliku z wynikami ciag znak
  27. w
  28. // w tym wypadku zapisze spacje (w html -> &nbsp;)
  29. function sru($blad) {
  30. if ($blad == 'Error') {
  31. if (!$plik = @fopen($filename,&#092;"w+\")) die('Nie moge zapisac w pliku z pogoda!');
  32. flock($plik,2);
  33. $zapisz = &#092;"&nbsp;\";
  34. fputs($plik,$zapisz);
  35. flock($plik,3);
  36. fclose($plik);
  37. }
  38. die(&#092;"$blad\");
  39. }
  40.  
  41. // Szukamy
  42. reset($stronka);
  43. while (list ($line_num, $line) = each ($stronka)) {
  44. if (eregi($fstart,$line)) {
  45. $znalazlem = &#092;"1\";
  46. list($a1, $a2, $a3) = split('<TABLE width=\"100%\" border=0 cellspacing=0 cellpadding=0>', $line);
  47. // SZUKAMY W LINII - PROGNOZY
  48. if (!eregi(&#092;"bottom><IMG src=0 height=4><BR>(Wieczorem|Nad ranem|Przed południem|Po południu)<BR>([0-9]{2})-([0-9]{2})<BR><IMG(.+)align=\"absmiddle\"> ([0-9]{1,3}) km/h <IMG(.+)nowrap>([0-9]{1,2})/([0-9]{1,2}) &deg(.+)nieg:</TD><TD class=a1b>([0-9]{1,2}).([0-9]{1,2}) mm(.+)nowrap>([0-9]{1,5}) hPa(.+)class=a1b>([0-9]{1,2}).([0-9]{1,2}) mm\", $a2, $dane)) sru('Error');
  49.  
  50. // Pora dnia - (Rano/Popoludniu/Wieczorem)
  51. $dane_a[1] = htmlspecialchars($dane[1]);
  52. // Pogoda w godzinach 2-3
  53. $dane_a[2] = htmlspecialchars($dane[2]);
  54. $dane_a[3] = htmlspecialchars($dane[3]);
  55. // Nie potrzebne
  56. $dane_a[4] = htmlspecialchars($dane[4]);
  57. // Wiatr km/h
  58. $dane_a[5] = htmlspecialchars($dane[5]);
  59. // Nie potrzebne
  60. $dane_a[6] = htmlspecialchars($dane[6]);
  61. // Temp. min 7 max. 8
  62. $dane_a[7] = htmlspecialchars($dane[7]);
  63. $dane_a[8] = htmlspecialchars($dane[8]);
  64. // Nie potrzebne
  65. $dane_a[9] = htmlspecialchars($dane[9]);
  66. // Snieg 10.11 mm
  67. $dane_a[10] = htmlspecialchars($dane[10]);
  68. $dane_a[11] = htmlspecialchars($dane[11]);
  69. // Nie potrzebne
  70. $dane_a[12] = htmlspecialchars($dane[12]);
  71. // Cisnienie w hpa
  72. $dane_a[13] = htmlspecialchars($dane[13]);
  73. // Nie potrzebne
  74. $dane_a[14] = htmlspecialchars($dane[14]);
  75. // Deszcz 15.16 mm
  76. $dane_a[15] = htmlspecialchars($dane[15]);
  77. $dane_a[16] = htmlspecialchars($dane[16]);
  78.  
  79. if (!eregi(&#092;"bottom><IMG src=0 height=4><BR>(Wieczorem|Nad ranem|Przed południem|Po południu)<BR>([0-9]{2})-([0-9]{2})<BR><IMG(.+)align=\"absmiddle\"> ([0-9]{1,3}) km/h <IMG(.+)nowrap>([0-9]{1,2})/([0-9]{1,2}) &deg(.+)nieg:</TD><TD class=a1b>([0-9]{1,2}).([0-9]{1,2}) mm(.+)nowrap>([0-9]{1,5}) hPa(.+)class=a1b>([0-9]{1,2}).([0-9]{1,2}) mm\", $a3, $dane)) sru('Error');
  80.  
  81. // Pora dnia - (Rano/Popoludniu/Wieczorem)
  82. $dane_b[1] = htmlspecialchars($dane[1]);
  83. // Pogoda w godzinach 2-3
  84. $dane_b[2] = htmlspecialchars($dane[2]);
  85. $dane_b[3] = htmlspecialchars($dane[3]);
  86. // Nie potrzebne
  87. $dane_b[4] = htmlspecialchars($dane[4]);
  88. // Wiatr km/h
  89. $dane_b[5] = htmlspecialchars($dane[5]);
  90. // Nie potrzebne
  91. $dane_b[6] = htmlspecialchars($dane[6]);
  92. // Temp. min 7 max. 8
  93. $dane_b[7] = htmlspecialchars($dane[7]);
  94. $dane_b[8] = htmlspecialchars($dane[8]);
  95. // Nie potrzebne
  96. $dane_b[9] = htmlspecialchars($dane[9]);
  97. // Snieg 10.11 mm
  98. $dane_b[10] = htmlspecialchars($dane[10]);
  99. $dane_b[11] = htmlspecialchars($dane[11]);
  100. // Nie potrzebne
  101. $dane_b[12] = htmlspecialchars($dane[12]);
  102. // Cisnienie w hpa
  103. $dane_b[13] = htmlspecialchars($dane[13]);
  104. // Nie potrzebne
  105. $dane_b[14] = htmlspecialchars($dane[14]);
  106. // Deszcz 15.16 mm
  107. $dane_b[15] = htmlspecialchars($dane[15]);
  108. $dane_b[16] = htmlspecialchars($dane[16]);
  109.  
  110. // zapisujemy wynik w pliku z pogoda!
  111. if (!$plik = @fopen($filename,&#092;"w+\")) die('Nie moge zapisac w pliku z pogoda!');
  112. flock($plik,2);
  113.  
  114. $zapisz = <<< EOT
  115. <font color=\"blue\">Pogoda dla Zgorzelca:</font> Teraz &nbsp;(w godz.$dane_a[2]-$dane_a[3])&nbsp;&nbsp;temp.min./max.: $dane_a[7]/$dane_a[8] &deg;C, ciśnienie: $dane_a[13] hPa, wiatr: $dane_a[5] km/h, deszcz: $dane_a[15].$dane_a[16] mm, śnieg: $dane_a[10].$dane_a[11] mm,&nbsp;&nbsp;&nbsp;Później &nbsp;(w godz.$dane_b[2]-$dane_b[3])&nbsp;&nbsp;temp.min./max.: $dane_b[7]/$dane_b[8] &deg;C, ciśnienie: $dane_b[13] hPa, wiatr: $dane_b[5] km/h, deszcz: $dane_b[15].$dane_b[16] mm, śnieg: $dane_b[10].$dane_b[11] mm&nbsp;&nbsp;&nbsp;
  116. EOT;fputs($plik,$zapisz);
  117. flock($plik,3);
  118. fclose($plik);
  119.  
  120. }
  121. }
  122. if ($znalazlem == \"0\") sru('Error: Nie znalazłem wyników na stronie - możliwa zmiana kodu strony z pogodą!');
  123. ?>

plik check.php
  1. <?php
  2. // Stronka
  3. $site_aura = &#092;"http://pogoda.onet.pl/0,1228,38,miasto.html\";
  4.  
  5. $ch = curl_init();
  6. curl_setopt ($ch, CURLOPT_URL, $site_aura);
  7. curl_setopt ($ch, CURLOPT_HEADER, 0);
  8. curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);
  9. $output = curl_exec($ch);
  10. if (curl_error($ch)) die(&#092;"Nie moge otowrzyc strony $site_aura\");
  11. $stronka = explode(&#092;"n\",$output);
  12. curl_close($ch);
  13.  
  14. reset($stronka);
  15. while (list ($line_num, $line) = each ($stronka)) {
  16.  
  17. echo &#092;"<b>Linia $line_num:</b> \", htmlspecialchars ($line), \"<br>n\";
  18. }
  19. ?>

i jest jeszcze do tego plik pogoda4444.inc

co w tym skrypcie jest nie tak
plewa
IMHO w lini 14 zamiast

$ch = curl_init();

powinno być;

$ch = curl_init( [ string url ] );

czyli jakiś url trzeba tam wstawić. smile.gif
rogrog
@plewa: nawiasy kwadratowe oznaczają że parametr jest opcjonalny więc akurat nic nie trzeba wstawić

@mksdziegiel: żeby korzystać z tego skryptu musisz mieć na serwerze bibliotekę cURL, jeśli jej nie ma to właśnie takie błędy wyskakują
mksdziegiel
to co trzeba zrobić
i gdzie tą biblioteke znaleść
MiNos
Witam Wszystkich,
sam poszukuje skryptu na wlasna uzytecznosc aby pokazywal pogode. Powyzej opisany jest calkiem ciakwy, niestety nie mam bladego pojecia o php a z tego co widze onet cos zmienil na swojej stronie i podczas uruchomienia pojawia sie blad o zmianach na stronie. Czy jest ktos w stanie zmodyfikowac skrypt lub podac mi wskazowke co powinienem zmienic aby zaczol poprawnie dzialac?

Bede wdzieczny za pomoc wrecz lopatologiczna smile.gif
Coyote
z tego co mi wiadomo to CURL jest biblioteka instalowana "do php" wiec musisz poprosic o to admina swojego servera
MiNos
Ta biblioteka chyba u mnie dziala komunikat jest taki:
"Prawdopodobne zmiany na stronach 1!"
widać go tutaj: http://www.nosal.ig.pl/php/pogoda_v1.01/

Z tego co widze po wywaolaniu php info http://www.nosal.ig.pl/php/php_info.php chyba ta biblioteka dziala ale moge sie mylic, mosz zobaczyc w spis opcji i powiedziec mi czy to napewno wina biblioteki?
NetJaro
Tak, bibliotekę masz zainstalowaną, więc powinno być wszystko OK.

Nie mam pojęcia czemu pojawia Ci się tak błąd..
MiNos
jezeli masz dzialajaca wersje prosze o podeslanie na email
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.