Hatena::ブログ(Diary)

KEINOSの日記

KEINOS SYSTEM & The Design Teamケイノス・システム>>ケイノスの日記一覧

2016-07-22 PHPで数字の先頭に 半角スペース を付ける方法 このエントリーを含むブックマーク

PHPで数値の前に空白を入れる

文字と数字が空白なしで並ぶ文字列は時として読みづらいことがあります。

また、GoogleMapsなどに住所を渡す際、該当するビル名が地図情報に含まれていると精度が上がるのですが、そのビル名に階数や部屋番号などが「スペースなし」で繋がっている場合に正常に認識できなかったりします。

変換前:スバラシティビル3階104号室
変換後:スバラシティビル 3階 104号室

やはりPHPでも正規表現を使うのが楽なのですが、単純に"preg_replace"を使うと脆弱性が発生するそうなので"preg_replace_callback"を使ってみます。

<?php
function fAddSpaceBeforeNum( $s ){
	$s = preg_replace_callback(
		'|(\d+)|',
		function( $matches ) {
			return " " . ( $matches[0] ); //頭に空白を足す
		},
		$s
	);
	return $s;
}

注意点としては「5-4-3」という場合に「 5- 4- 3」という結果になることです。