Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]file_get_contents wyłączone :/
Forum PHP.pl > Forum > Przedszkole
robos85
Otóż na serwerze mam wyłączone file_get_contents.
Jak mogę pobrać inaczej treść pliku - jest on malutki całe 6 linijek ale ważne:/
Ew. czy można jakoś to z poziomu htaccess włączyć;p
mike
fopen() + fread() + fclose()
lub kilka innych sposóbów, które masz w dokumentacji Funkcje Systemu plików

Nie, nie można tego włączyć skoro admin wyłączył.
wookieb
Sprawdz w phpinfo czy napewno ta funkcja jest zablokowana. Bo moze probujesz pobrac zawartosc z innego serwera np
Kod
file_get_contents('http://wp.pl');

a wtedy za takie cos moze byc odpowiedzialne injne ustawienie fopen wrappers
robos85
Tak, plik chcę z innego serwera pobrać
robię tak:
  1. <?php
  2. $nazwa_pliku = "http://em.bankier.pl/provider/mci/index.php";
  3. $uchwyt = fopen($nazwa_pliku, "r");
  4. $tresc = fread($uchwyt, filesize($nazwa_pliku));
  5. fclose($uchwyt);
  6. $smarty->assign('notowania',$tresc);
  7. ?>


a błąd mam taki:
Kod
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /public_html/index.php on line 17

Warning: fopen(http://em.bankier.pl/provider/mci/index.php) [function.fopen]: failed to open stream: no suitable wrapper could be found in /public_html/index.php on line 17

Warning: filesize() [function.filesize]: stat failed for http://em.bankier.pl/provider/mci/index.php in /public_html/index.php on line 18

Warning: fread(): supplied argument is not a valid stream resource in /public_html/index.php on line 18

Warning: fclose(): supplied argument is not a valid stream resource in /public_html/index.php on line 19


i co mam w takim wypadku zrobić?
wookieb
Wiec zrob to za pomoca curl
http://php.net/curl
robos85
  1. <?php
  2. function wczytaj($url)
  3. {
  4.    $curl = curl_init();
  5.  
  6.    $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  7.    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  8.    $header[] = "Cache-Control: max-age=0";
  9.    $header[] = "Connection: keep-alive";
  10.    $header[] = "Keep-Alive: 300";
  11.    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  12.    $header[] = "Accept-Language: en-us,en;q=0.5";
  13.    $header[] = "Pragma: ";
  14.    $gacookie='cookie.txt';
  15.    curl_setopt($curl, CURLOPT_URL, $url);
  16.    curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
  17.    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  18.    curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
  19.    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
  20.    curl_setopt($curl, CURLOPT_AUTOREFERER, true);
  21.    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  22.    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  23.  
  24.    $html = curl_exec($curl);
  25.    curl_close($curl);
  26.    
  27.    return $html;
  28. }
  29.  
  30. $s = wczytaj('http://em.bankier.pl/provider/mci/index.php');
  31. $smarty->assign('notowania',$s);
  32. ?>


W curl za dobry nie jestem, ale czy takie coś może być, czy coś skopałem?

chcę pobrać tą stronę : http://em.bankier.pl/provider/mci/index.php
wookieb
Wystarczy
  1. <?php
  2. function wczytaj($url)
  3. {
  4.    $curl = curl_init();
  5.    curl_setopt($curl, CURLOPT_URL, $url);
  6.    $html = curl_exec($curl);
  7.    curl_close($curl);
  8.    return $html;
  9. }
  10.  
  11. $s = wczytaj('http://em.bankier.pl/provider/mci/index.php');
  12. $smarty->assign('notowania',$s);
  13. ?>
Spirit86
jak nie masz włączonych bibliotek cURL a ustawioną dyrektywę do file, możesz zrobić:

  1. <?php
  2. function pobierz($url){
  3.  return join(file($url));
  4. }
  5.  
  6. pobierz('http://onet.pl');
  7. ?>
wookieb
No przeciez pokazal ze nie moze tego zrobic za pomoca file...
pyro
Cytat(wookieb @ 8.10.2008, 15:48:54 ) *
Wystarczy
  1. <?php
  2. function wczytaj($url)
  3. {
  4.    $curl = curl_init();
  5.    curl_setopt($curl, CURLOPT_URL, $url);
  6.    $html = curl_exec($curl);
  7.    curl_close($curl);
  8.    return $html;
  9. }
  10. ?>


popraw swoj kod bo zes bzdury napisal
Pilsener
Nie zapominajmy też o socketach:
fsockopen" title="Zobacz w manualu PHP" target="_manual - na forum są na pewno przykłady pobrania pliku przy wykorzystaniu fsockopen.
wookieb
Cytat(pyro @ 8.10.2008, 20:07:42 ) *
popraw swoj kod bo zes bzdury napisal


Wiec najpierw sprawdz a nie herezje szerzysz.
Spirit86
Cytat(wookieb @ 8.10.2008, 18:02:23 ) *
No przeciez pokazal ze nie moze tego zrobic za pomoca file...


Cytat(robos85 @ 8.10.2008, 13:16:08 ) *
Otóż na serwerze mam wyłączone file_get_contents.
wookieb
Czytaj dokładnie. Chodzi o fopen_wrappers. wiec za pomoca fopen tez tego nie otworzysz, ani za pomoca file.
pyro
Cytat(wookieb @ 9.10.2008, 09:15:15 ) *
Wiec najpierw sprawdz a nie herezje szerzysz.


Wiec moze SAM TO SPRAWDZ ZANIM DASZ, zanim znowu napiszesz bzdety to sie zastanow wookieb, dam ci stowe jak ci cos zwroci do zmiennej $html kod html otwieranej strony.
wookieb
http://wookieb.pl/curl.php


  1. <?php
  2. function wczytaj($url)
  3. {
  4.   $curl = curl_init();
  5.   curl_setopt($curl, CURLOPT_URL, $url);
  6.   $html = curl_exec($curl);
  7.   curl_close($curl);
  8.   return $html;
  9. }
  10.  
  11. echo wczytaj('http://www.google.pl/');
  12. ?>


Podac ci juz numer konta?
pyro
Cytat(wookieb @ 9.10.2008, 20:00:21 ) *
http://wookieb.pl/curl.php


  1. <?php
  2. function wczytaj($url)
  3. {
  4.   $curl = curl_init();
  5.   curl_setopt($curl, CURLOPT_URL, $url);
  6.   $html = curl_exec($curl);
  7.   curl_close($curl);
  8.   return $html;
  9. }
  10.  
  11. echo wczytaj('http://www.google.pl/');
  12. ?>


Podac ci juz numer konta?


niech zgadne, wstawiles wkoncu
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
questionmark.gif
wookieb
Nie. Ten kod działą i nie gadaj. Podawac numer konta?
pyro
nie trzeba, bo u mnie nie dziala

$html trzyma tylko bool
wookieb
BO returntransfer jest domyslnie true od curl 7.10 masz starsza wersje. Gdzie moja stowa?!??!?! biggrin.gif:D
pyro
Cytat(wookieb @ 9.10.2008, 20:10:49 ) *
BO returntransfer jest domyslnie true od curl 7.10 masz starsza wersje. Gdzie moja stowa?!??!?! biggrin.gif biggrin.gif


Być może to możliwe, jednak kolega moze nie miec nowszej wersji wiec dla uniwersalnosci radze dodac te linijke ;]

stowy nie bedzie bo nie dziala, przynajmniej nie u wszystkich ;]
wookieb
Cytat(pyro @ 9.10.2008, 20:12:37 ) *
Być może to możliwe, jednak kolega moze nie miec nowszej wersji wiec dla uniwersalnosci radze dodac te linijke ;]

stowy nie bedzie bo nie dziala, przynajmniej nie u wszystkich ;]


Oszust sad.gif 7.10 jest juz chyba standardem tongue.gif
pyro
Cytat(wookieb @ 9.10.2008, 20:15:37 ) *
Oszust sad.gif 7.10 jest juz chyba standardem tongue.gif


czy ja wiem... jest jeszcze duzo firm hostingowych ktore korzystaja ze starszej wersji

// ADD

pomijam juz to ze starsze wersje sa podatne na ataki tongue.gif
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.