Autor Zpráva
unlucky
Profil
jak získat obsah určité stránky?
Alphard
Profil
Proč nefunguje? Jak nefunguje? Nějaké chyby?
Majkl578
Profil
unlucky:
Dodej phpinfo.
unlucky
Profil
spise zakazane :P
AM_
Profil
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
ini_set asi povolené není, že?
Jan Tvrdík
Profil
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);
		}
	}

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: