特定の場所のタイムゾーンを返す関数が必要なので、 Google Time Zone APIを使用します。
function timezoneLookup($lat, $lng){
$url = 'https://maps.googleapis.com/maps/api/timezone/json?location='.$lat.','.$lng.'×tamp='.time().'&sensor=false';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$url を返すと、GET 変数 "×tamp=" が "×tamp=" に変換されていることがわかるため、関数は機能しません。
関数の外でスクリプトを実行すると、機能します。
どうして??
- - アップデート - -
問題を解決しました。curl は https:// では機能しないため、次を追加します。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
詳細については、こちらを参照してくださいPHP cURL が HTTPS で機能しない