Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 9. 11. 2009, 20:46:37
jak získat obsah určité stránky?
|
||
Alphard Profil |
#2 · Zasláno: 9. 11. 2009, 20:49:45
Proč nefunguje? Jak nefunguje? Nějaké chyby?
|
||
Majkl578 Profil |
#3 · Zasláno: 9. 11. 2009, 20:51:08
unlucky:
Dodej phpinfo. |
||
unlucky Profil |
#4 · Zasláno: 9. 11. 2009, 20:51:10
spise zakazane :P
|
||
AM_ Profil |
#5 · Zasláno: 9. 11. 2009, 20:56:15
to je pak špatné. Další cesta by byla přes sockety, ale to by byla šílená pitva a pokud je zakázané file_get_contents i curl, pochybuji, že půjdou sockety.
Jediné schůdné řešení bude promluvit s webmasterem o přehnaně paranoidním nastavení. Napadla mě ještě jedna šílenost, načíst obsah požadované stránky do iframu a pak ho poslat AJAXem na server, ale jak říkám, je to dost šílené a navíc uživatel může obsah ovlivnit. |
||
Majkl578 Profil |
#6 · Zasláno: 9. 11. 2009, 21:15:24
ini_set asi povolené není, že?
|
||
Jan Tvrdík Profil |
#7 · Zasláno: 9. 11. 2009, 21:20:38 · Upravil/a: Jan Tvrdík
AM:
„to by byla šílená pitva“ Neřekl bych. Stačí si najít / napsat funkci, který se používá stejně jako file_get_content, akorát používá sockety. unlucky: Zkus tohle, vyžaduje funkční fsockopen. /** * Přečte vzdálený soubor a vrátí jeho obsah * Slouží jako socketový ekvivalent funkce file_get_content * @param string absolutní adresa vzdáleného souboru * @return string Obsah vzdáleného souboru */ protected function readRemoteFile($url, $timeout = 3) { $url = parse_url($url); if(!isset($url['port'])) $url['port'] = 80; $socket = @fsockopen($url['host'], $url['port'], $errno, $errstr, $timeout); if($socket) { $headers = "GET " . (isset($url['path']) ? $url['path']: '/') . (isset($url['query'])? '?' . $url['query']: '') . " HTTP/1.1\r\n"; $headers .= "Host: " . $url['host'] . " \r\n"; $headers .= "Connection: Close\r\n\r\n"; if(@fwrite($socket, $headers) === false) throw new Exception("Socket: Chyba při odesílání hlaviček",4); $data = null; while (!feof($socket)) { $data .= @fgets($socket, 128); } if(trim($data) == false) throw new Exception("Socket: Nepodařilo se načíst data.",4); return $data; } else { throw new Exception("Socket: Chyba při tvorbě socketového spojení #$errno: $errstr",4); } } |
||
Časová prodleva: 14 let
|
0