Jan 03

PHP 全角スペースを半角スペースに置換し、キーワード抽出

php コメントはページの下に

キーワード検索機能をつけるときに、自分は全角スペース、半角スペースごちゃまぜで検索しようとします。
PHPでこの機能を作る場合は、フォームから渡されたキーワード文字列を分割しなくてはいけません。キーワードを区切る文字を”半角スペース”とする場合、全角スペースを半角スペースに変換する必要が出てきます。
str_replace()などでは全然変換されなくて困っていたところ、便利な関数が用意されていました。

mb_convert_kana()を使う

こんな関数が用意されていました。
http://jp2.php.net/manual/ja/function.mb-convert-kana.php

PHP:
  1. //全角スペースを半角スペースに変換
  2. $keywords = mb_convert_kana( $keywords, "s" );
  3. //半角スペースで区切り、$keyList配列に格納
  4. $keyList = explode( " ", $keywords );

全角スペースがつながって複数ある場合は?

上記explodeでそれぞれ配列に値が入りましたが、全角スペースが2つなどつながっている場合、配列$keyList内には余分な空文字も入っています。

空白、NULL,false,-1などのboolean=falseとなるような値をフィルタリングした配列を返す関数array_filter()を使います。
最後にforeach()などで値を見れば、確かに入力したフォームの文字列から空白を除いた文字列が取得できました。

PHP:
  1. $keyList = array_filter( $keyList );
  2. foreach( $keyList as $key=>$val ){
  3.   echo $val."<br />";
  4. }

参考URL

mb_convert_kana
http://jp2.php.net/manual/ja/function.mb-convert-kana.php

array_filter
http://www.php.net/manual/ja/function.array-filter.php

配列要素の削除方法について PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/1475

前後の記事

関連した記事

トラックバック&Pingback

この記事が気に入ったりした方は、自分のブログを書くときに「下のURLをコピーして、自分のブログ投稿時のトラックバック欄にペースト」してください。つながります。
URL:

コメント ( 0 )

コメント記入欄

Copyright(c) 小山太郎.com All rights reserved.