geturl: limit amount of redirects

This commit is contained in:
Andrew Dolgov 2013-07-10 20:18:20 +04:00
parent 6bd7913e20
commit fe61dc1823
1 changed files with 4 additions and 2 deletions

View File

@ -4090,7 +4090,9 @@
return in_array($interface, class_implements($class)); return in_array($interface, class_implements($class));
} }
function geturl($url){ function geturl($url, $depth = 0){
if ($depth == 20) return $url;
if (!function_exists('curl_init')) if (!function_exists('curl_init'))
return user_error('CURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini', E_USER_ERROR); return user_error('CURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini', E_USER_ERROR);
@ -4129,7 +4131,7 @@
preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches); preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches);
$url = trim(str_replace($matches[1],"",$matches[0])); $url = trim(str_replace($matches[1],"",$matches[0]));
$url_parsed = parse_url($url); $url_parsed = parse_url($url);
return (isset($url_parsed))? geturl($url):''; return (isset($url_parsed))? geturl($url, $depth + 1):'';
} }
global $fetch_last_error; global $fetch_last_error;