Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Problem z funkcja file_get_contents
Forum PHP.pl > Forum > Przedszkole
morwo
Witam, mam problem z funkcja file_get_contents. Mianowicie napisalem skrypt, ktory pobiera dane z jednej strony, wyszukuje wsrod nich "cos" i wyswietla wyniki. Skrypt dziala poprawnie u mnie w domu, a na darmowym serwerze, na ktory wrzucam skrypt, nie dziala. To znaczy: wyswietla wszystko do momentu tresci "Players online". Prosze o pomoc, oto kod:

  1. </head>
  2. <body>
  3. <?
  4. function is_online($igracz) {
  5. $dane=file_get_contents("http://www.tibia.com/statistics/?subtopic=whoisonline&w
  6.  orld=Thoria");
  7. $poczatek='<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>';
  8. $wynik=explode($poczatek,$dane);
  9. $is_on=(ereg($igracz,$wynik[2]));
  10. if (($is_on!="")||($is_on!="0")) {
  11. print("<a
  12.  href="http://www.tibia.com/community/?subtopic=character&name=$igracz">$ig
  13.  racz</a><br />");
  14. }
  15. }
  16.  
  17. function get_on_ones(){
  18. $d=dir("players/");
  19. $i=0;
  20. echo("<b>Players online: </b><br /><br />");
  21. while (false!==($entry[$i]=$d->read())) {
  22. if (($entry[$i]!='.')&&($entry[$i]!='..')) {
  23. $i++;
  24. }
  25. }
  26. foreach ($entry as $plik_zrodlowy) {
  27. if ($plik_zrodlowy!=NULL) {
  28. is_online($plik_zrodlowy);
  29. }
  30. }
  31. $d->close();
  32. }
  33. ?>
  34.  
  35.  
  36. <table>
  37. <tr>
  38. <td>
  39. <?
  40. get_on_ones();
  41. ?>
  42. </td>
  43. </tr>
  44. </table>
  45. </body>
  46. </html>


Myslalem,ze problem jest z moimi plikami,ale z nimi raczej wszystko o.k. W domu uzywam dosc popularnego programu do uruchamiania serwera, ktory nosi wdzieczna nazwe "KRASNAL" winksmiley.jpg Moge wrzucic troche mniejszy skrypt, za pomoca ktorego tez pobieram informacje ze strony (uzywajac file_get_contents). Oto on:

  1. <?php
  2. $dane=file_get_contents("http://www.tibia.com/community/?subtopic=guilds&page=view&G
  3.  uildName=Twi");
  4. $poczatek='<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>';
  5. $kolor1='BGCOLOR=#D4C0A1';
  6. $kolor2='BGCOLOR=#F1E0C6';
  7. $kolor3='BGCOLOR=#505050';
  8. $wynik=explode($poczatek,$dane);
  9. $wynik2=$wynik[1];
  10. $wynik3=str_replace($kolor1,' ',$wynik2);
  11. $wynik2=str_replace($kolor2,' ',$wynik3);
  12. $wynik3=str_replace($kolor3,' ',$wynik2);
  13. $wynik2=str_replace('<BR><BR>',' ',$wynik3);
  14. print($wynik2);
  15. ?>


Ten skrypt tez u mnie w domu dziala poprawnie, a gdy wysylam go na serwer (cba.pl),to kiszka,nie wyswietla sie tabela, ktora ma pobrac ze strony.

Od razu przyznaje, ze nie przeszukalem forum dokladnie (jedynie tylko pierwsza strone wynikow z szukania tematow z zawartoscia "file_get_contents" :/). Gdzies wyczytalem, ze ta funkcja nie zawsze dziala poprawnie, jesli chodzi o pobieranie informacji z sieci, czy to prawda? Czy w tych moich skryptach jest to wina tej funkcji? Czy moze powinienem postarac sie je jakos zoptymalizowac (bo dzialaja wolno)? A jesli to wina funkcji file_get_contents, to czy jest jakas inna funkcja, ktora moglbym zastapic wspomniana w temacie?

Z gory dziekuje, za wszelka pomoc smile.gif
Gość
Moze sprobuj do otwierania innej strony funkcji fopen lub fsockopen
Whisller
Najpierw file_get_contents" title="Zobacz w manualu php" target="_manual. Administrator pewnie 'wylaczyl' opcje allow_url_fopen.
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.