$mh = curl_multi_init();
$connectionArray = array();
foreach($urls as $key => $url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_multi_add_handle($mh, $ch);
$connectionArray[$key] = $ch;
}
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
foreach($connectionArray as $key => $ch) {
curl_multi_remove_handle($mh, $ch);
}
Код показывает полученный header(хотя нигде нет echo, print...).
Как мне из него извлечь данные location?
Нашел ответ, может кому пригодится:
$mh = curl_multi_init();
$connectionArray = array();
foreach($urls as $key => $url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_multi_add_handle($mh, $ch);
$connectionArray[$key] = $ch;
}
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
foreach($connectionArray as $key => $ch) {
$content = curl_multi_getcontent($ch);
$curl_info = curl_getinfo($ch);
$headers = substr($content, 0, $curl_info["header_size"]);
preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches);
$url = $matches[1];
curl_multi_remove_handle($mh, $ch);
}
curl_multi_close($mh);
Продвижение своими сайтами как стратегия роста и независимости