本文整理汇总了PHP中Connector::_loops方法的典型用法代码示例。如果您正苦于以下问题:PHP Connector::_loops方法的具体用法?PHP Connector::_loops怎么用?PHP Connector::_loops使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Connector
的用法示例。
在下文中一共展示了Connector::_loops方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: curl_exec_follow
private function curl_exec_follow($ch)
{
if (self::$_loops++ >= self::$_maxLoops) {
self::$_loops = 0;
return false;
}
$data = curl_exec($ch);
$temp = $data;
list($header, $data) = explode("\n\n", $data, 2);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http == 301 || $http == 302) {
$matches = array();
preg_match('/ocation:(.*?)\\n/', $header, $matches);
$url = @parse_url(trim(array_pop($matches)));
// print_r($url);
if (!$url) {
self::$_loops = 0;
return $data;
}
$last_url = parse_url(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL));
if (!$url['scheme']) {
$url['scheme'] = $last_url['scheme'];
}
if (!$url['host']) {
$url['host'] = $last_url['host'];
}
if (!$url['path']) {
$url['path'] = $last_url['path'];
}
$new_url = $url['scheme'] . '://' . $url['host'] . $url['path'] . ($url['query'] ? '?' . $url['query'] : '');
// echo "\n redirect to ".$new_url;
//@todo Возможна непредвиденая хуйня.
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, $new_url);
return $this->curl_exec_follow($ch);
} else {
self::$_loops = 0;
return $temp;
}
}