注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

全国都道府県の英語文字列を日本語(漢字)に変換する(php)

  • 2020年10月8日
  • 2020年10月7日
  • 技術
  • 0件

やりたいこと

Facebook APIで取得できる地域情報が下記のような形式になっています。

Abiko-shi, Chiba Prefecture
Agano-shi, Niigata Prefecture
Ageo-shi, Saitama Prefecture
Aichi-gun, Aichi Prefecture
Aikawa-machi Aiko-gun, Kanagawa Prefecture
Aioi-shi, Hyōgo Prefecture
Aira-shi, Kagoshima Prefecture
Aisai-shi, Aichi Prefecture
Aizubange-machi Kawanuma-gun, Fukushima Prefecture
Aizuwakamatsu-shi, Fukushima Prefecture
Akaiwa-shi, Nagano Prefecture
Akashi, Hyōgo Prefecture
Aki-gun, Hiroshima Prefecture
Aki-shi, Kōchi Prefecture
Akita-shi, Akita Prefecture

画面に写したり、レポートで集計する際に、地域別になってしまったり、日本語でないと扱いが地味に不便なため、日本語に変換します。

対応

ゴリゴリ自前で書いてますが、下記のように対応します。

    private function _replacePrefecturesName($name)
    {
        if (mb_strlen($name) < 1) return $name;

        if (strpos($name,"Hokkaido") !== false) return "北海道";
        if (strpos($name,"Aomori") !== false) return "青森県";
        if (strpos($name,"Iwate") !== false) return "岩手県";
        if (strpos($name,"Miyagi") !== false) return "宮城県";
        if (strpos($name,"Akita") !== false) return "秋田県";
        if (strpos($name,"Yamagata") !== false) return "山形県";
        if (strpos($name,"Fukushima") !== false) return "福島県";
        if (strpos($name,"Ibaraki") !== false) return "茨城県";
        if (strpos($name,"Tochigi") !== false) return "栃木県";
        if (strpos($name,"Gunma") !== false) return "群馬県";
        if (strpos($name,"Saitama") !== false) return "埼玉県";
        if (strpos($name,"Chiba") !== false) return "千葉県";
        if (strpos($name,"Tokyo") !== false) return "東京都";
        if (strpos($name,"Kanagawa") !== false) return "神奈川県";
        if (strpos($name,"Niigata") !== false) return "新潟県";
        if (strpos($name,"Toyama") !== false) return "富山県";
        if (strpos($name,"Ishikawa") !== false) return "石川県";
        if (strpos($name,"Fukui") !== false) return "福井県";
        if (strpos($name,"Yamanashi") !== false) return "山梨県";
        if (strpos($name,"Nagano") !== false) return "長野県";
        if (strpos($name,"Gifu") !== false) return "岐阜県";
        if (strpos($name,"Shizuoka") !== false) return "静岡県";
        if (strpos($name,"Aichi") !== false) return "愛知県";
        if (strpos($name,"Mie") !== false) return "三重県";
        if (strpos($name,"Shiga") !== false) return "滋賀県";
        if (strpos($name,"Kyoto") !== false) return "京都府";
        if (strpos($name,"Osaka") !== false) return "大阪府";
        if (strpos($name,"Hyogo") !== false) return "兵庫県";
        if (strpos($name,"Hyōgo") !== false) return "兵庫県";
        if (strpos($name,"Nara") !== false) return "奈良県";
        if (strpos($name,"Wakayama") !== false) return "和歌山県";
        if (strpos($name,"Tottori") !== false) return "鳥取県";
        if (strpos($name,"Shimane") !== false) return "島根県";
        if (strpos($name,"Okayama") !== false) return "岡山県";
        if (strpos($name,"Hiroshima") !== false) return "広島県";
        if (strpos($name,"Yamaguchi") !== false) return "山口県";
        if (strpos($name,"Tokushima") !== false) return "徳島県";
        if (strpos($name,"Kagawa") !== false) return "香川県";
        if (strpos($name,"Ehime") !== false) return "愛媛県";
        if (strpos($name,"Kochi") !== false) return "高知県";
        if (strpos($name,"Kōchi") !== false) return "高知県";
        if (strpos($name,"Fukuoka") !== false) return "福岡県";
        if (strpos($name,"Saga") !== false) return "佐賀県";
        if (strpos($name,"Nagasaki") !== false) return "長崎県";
        if (strpos($name,"Kumamoto") !== false) return "熊本県";
        if (strpos($name,"Oita") !== false) return "大分県";
        if (strpos($name,"Ōita") !== false) return "大分県";
        if (strpos($name,"Miyazaki") !== false) return "宮崎県";
        if (strpos($name,"Kagoshima") !== false) return "鹿児島県";
        if (strpos($name,"Okinawa") !== false) return "沖縄県";

        return null;
    }

できました。引数に文字列(Shizuokaなど)を渡してあげれば、日本語表記の都道府県名が返却されるようになっています。
Facebook APIの場合、高知県がKochiではなく、Kōchiという表記になっていたり、大分県がOitaではなく、Ōitaという表記になっているので注意してください。