Pošto je isključena funkcionalnost allow_url_fopen(), nije moguće vršiti priključivanje fajlova sa druguh lokacija pomoću funkcije file_get_contents().
Ako imate sajt na UNIX serveru onda možete koristiti cURL kako je opisano ovde. Za korisnike na Windows serveru postoji alternativno rešenje koje smo razvili:
function file_get_url_contents($url) { if (preg_match('/^([a-z]+):\/\/([a-z0-9-.]+)(\/.*$)/i', $url, $matches)) { $protocol = strtolower($matches[1]); $host = $matches[2]; $path = $matches[3]; } else { // Bad url-format return FALSE; } if ($protocol == "http") { $socket = fsockopen($host, 80); } else { // Bad protocol return FALSE; } if (!$socket) { // Error creating socket return FALSE; } $request = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n"; $len_written = fwrite($socket, $request); if ($len_written === FALSE || $len_written != strlen($request)) { // Error sending request return FALSE; } $response = ""; while (!feof($socket) && ($buf = fread($socket, 4096)) !== FALSE) { $response .= $buf; } if ($buf === FALSE) { // Error reading response return FALSE; } $end_of_header = strpos($response, "\r\n\r\n"); return substr($response, $end_of_header + 4); }
Poziv funcije se vrši na sledeći način (zamenite http://www.loopia.se/ sa adresom koju želite da download-ujete:
$url = "http://www.loopia.se/"; $res = file_get_url_contents($url); if ($res === FALSE) { echo "Error fetching $url"; } else { echo $res; }