URLのリストを含むtxtファイルがあります。そのリスト内のすべての URL のリダイレクト先が必要です。これが私のコードです:
$url_list = "ggurl.txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
foreach (file($url_list) as $url) {
curl_setopt($ch, CURLOPT_URL, $url);
$out = curl_exec($ch);
// line endings is the wonkiest piece of this whole thing
$out = str_replace("\r", "", $out);
// only look at the headers
$headers_end = strpos($out, "\n\n");
if( $headers_end !== false ) {
$out = substr($out, 0, $headers_end);
}
$headers = explode("\n", $out);
foreach($headers as $header) {
if( substr($header, 0, 10) == "Location: " ) {
$target = substr($header, 10);
echo "[$url] redirects to [$target]<br>";
$url = $target;
continue 2;
}
}
$url = rtrim($url);
echo $url . "<br>";
}
このコードの問題は、リストの最後の URL のリダイレクト先しか表示されないことです。誰もこの問題の解決策を知っていますか?