タイムゾーンのリストを取得する
PHPにはサポートされるタイムゾーンのリストがある。PHP5.1.0以降ならtimezone_identifiers_list関数でこのリストが取得できる。だが、obsoleteなリストも含まれてしまうため、これらを除外したいケースもあるだろう。
preg_grep関数を使えば正規表現で配列のフィルタリングができるので、下記のように書ける。
$regions = array(
'Africa',
'America',
'Antarctica',
'Arctic',
'Asia',
'Atlantic',
'Australia',
'Europe',
'Indian',
'Pacific'
);
$validPattern = '{(' . implode('|', $regions) . ')/.*$}';
$identifiers = preg_grep($validPattern, timezone_identifiers_list());
print_r($identifiers);