私はphpとcURLを使用して、noaaのWebサイトから海洋予測を取得しています。スクリプトは、予測ゾーンが沖合 60 マイルを超えるまで正常に機能します。予測が沖合 60 マイルを超える場合、ページはリダイレクトされます。私の質問は、新しい URL を取得して、新しいページから必要な情報だけを印刷するにはどうすればよいかということです。これが私がこれまでに持っているものです。それは明らかにうまくいきませんが、私が達成したいことを示すのに役立つかもしれないと考えました.
<?php
$url = "http://forecast.weather.gov/MapClick.php?lat=$a1[d_lat]&lon=-$a1[d_lon]&unit=0&lg=english&FcstType=text&TextType=1";
//unique text to determine start goes here
$start = "</table><table width=";
//insert end text here
$end = "which includes this point<br></td></tr><tr>";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url );
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch) or die ("Couldn't connect to $url.");
curl_close ($ch);
$startposition = strpos($result,$start);
if($startposition > 0){
$endposition = strpos($result,$end, $startposition);
//add enough chars to include the tag
$endposition += strlen($end);
$length = $endposition-$startposition;
$result = substr($result,$startposition,$length);
echo $result;
}else
//get the new url from headers? This is where I'm Lost...
$url = "";
//unique text to determine start on redirected page
$start = "</table><table width=";
//insert end text here
$end = "which includes this point<br></td></tr><tr>";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url );
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch) or die ("Couldn't connect to $url.");
curl_close ($ch);
$startposition = strpos($result,$start);
if($startposition > 0){
$endposition = strpos($result,$end, $startposition);
//add enough chars to include the tag
$endposition += strlen($end);
$length = $endposition-$startposition;
$result = substr($result,$startposition,$length);
echo $result;
}else
echo "Sorry Forecast Unavailable";
?>