[PHP-users 18087]Re: 住所文字列の分割

Masayuki Iwamoto masa-i @ netlaputa.ne.jp
2003年 9月 26日 (金) 10:18:52 JST


いわもとと申します。

From: Hiroshi Ishiura <issy777 @ entrance-e.com>
Subject: [PHP-users 18085] 住所文字列の分割
Date: Fri, 26 Sep 2003 09:31:11 +0900

> CSVの住所データでは1つでつながっているのを
> 都道府県、市区町村、市区町村以下 で分割してDBのテーブルにいれたいので
> すが・・・
> 
> 例:
> 東京都新宿区西新宿123
>>   ken |  city | town
> ーーーーーーーーーーー
> 東京都|新宿区|西新宿123

住所のデータということなので、
いっしょに郵便番号も管理されているかと思います。

郵便番号がわかるのであれば、
郵政公社のサイトで公開されている郵便番号データを使って
似たようなことをしたことがあります。

http://www.post.yusei.go.jp/zipcode/dl/readme.html
を見ていただくとわかると思いますが、
郵便データファイルには、郵便番号の他に、
都道府県名、市区町村名、町域名が格納されています。
この場合、分割後のken,cityは、郵便番号を元に、
郵便データから引っ張ってきてしまいます。
残ったtownですが、元の一つながりの住所データから、
郵便データから引いてきたken,cityの文字列を削除したものを使います。

上の例だと、
元データ:東京都新宿区西新宿123
          
郵便データの都道府県(1):東京都
郵便データの市区町村(2):新宿区

となりますので、
元データから(1)(2)の文字列を削除する処理を
正規表現で書けば、townの「西新宿123」が残ります。

もちろん元データの都道府県、市区町村部分が正確でなければ
処理できないデータが残ってしまいます。
処理できなかったデータだけを別ファイルにするなりして、
その部分は人間が判断して区分するしかないと思いますが、
9割がた処理できれば、かなり労力の節約にはなると思います。

岩本 雅幸(IWAMOTO, Masayuki) * Beauty, strength, youth
masa-i @ netlaputa.ne.jp       *                are flowers but fading seen;
m-iwamot @ nmit.jp             * Duty, faith, love are roots and ever green.
masa @ is-assoc.co.jp          *                         (by Sir. Henry Lee)



PHP-users メーリングリストの案内