PHPで数字の先頭に 半角スペース を付ける方法

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

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

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

空白なし:スバラシティビル3階104号室
空白あり:スバラシティビル 3階 104号室

読みづらい以外にWebAPI系に住所データを渡す際にもAPI側が区切りがわからず精度が下がるというデメリットもあります。

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

お客様の入力した住所からGoogleMapでも表示してGPSなどの座標情報も取得したいといった場合、これだけの差で精度が下がるのはもったいない。しかし、入力フォームに項目を細かく分けすぎてしまうことでお客様の利便性を損なうという、トレードオフ的なジレンマがあると思います。

さて、このような空白を加える処理はPHPでも正規表現を使うのが楽なのですが、その場合単純に”preg_replace”を使うと脆弱性が発生するので”preg_replace_callback”を使ってみます。

変換前:スバラシティビル3階104号室
変換後:スバラシティビル 3階 104号室
<?php
function fAddSpaceBeforeNum( $s ){
$s = preg_replace_callback(
'|(\d+)|',
function( $matches ) {
return " " . ( $matches[0] ); //頭に空白を足す
},
$s
);
return $s;
}

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

関連記事

PHPの配列でキーを再採番する方法 PHPの配列で歯抜けになったキーを再採番する方法 PHPでarray_uniqueなどの配列用関数を使うと、配列のキー(添字、要素名)が、連想配列でなく数値の場合、バラバラになる(連番にならない)ことがある。 これを、ちゃんと連番にしたい。いい方法はないか。 結論 sortをかます。...
PHPでComet:フォーカスの当たっていないウィンドウが更新されない... PHPとprototype.jsを使ってAjaxでCometなチャットを作ろうとした。 FireFoxで動作検証していたのだが、ブラウザの複数ウィンドウを立ち上げ、別マシンでもウィンドウを立ち上げて検証していたところ、フォーカスの当たっていない(アクティブでない)ウィンドウでは、TextAre...
xrea.comサーバにPEARをインストールする方法... Monoar / Pixabay CGIモードでgo-pear.phpを実行 xrea.comで、PEARのWEBインストーラーであるgo-pear.phpを使ってインストールしたかったのですが、何度試してもtempフォルダの権限が変わってしまい、エラーになってしまいます。 結論...
PHPでファイルの拡張子を調べる方法 アップロード済みローカル・ファイルのMIMEを調べたい 答え pathinfo()関数で、返ってきた配列の"extension"の値を調べればよろし $sFilePath = "./hogehoge.png"; if(File_Exists($sFilePath))...

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告