キーワード検索機能をつけるときに、自分は全角スペース、半角スペースごちゃまぜで検索しようとします。
PHPでこの機能を作る場合は、フォームから渡されたキーワード文字列を分割しなくてはいけません。キーワードを区切る文字を”半角スペース”とする場合、全角スペースを半角スペースに変換する必要が出てきます。
str_replace()などでは全然変換されなくて困っていたところ、便利な関数が用意されていました。
mb_convert_kana()を使う
こんな関数が用意されていました。
http://jp2.php.net/manual/ja/function.mb-convert-kana.php
PHP:
-
//全角スペースを半角スペースに変換
-
-
//半角スペースで区切り、$keyList配列に格納
-
$keyList =
explode( " ",
$keywords );
全角スペースがつながって複数ある場合は?
上記explodeでそれぞれ配列に値が入りましたが、全角スペースが2つなどつながっている場合、配列$keyList内には余分な空文字も入っています。
空白、NULL,false,-1などのboolean=falseとなるような値をフィルタリングした配列を返す関数array_filter()を使います。
最後にforeach()などで値を見れば、確かに入力したフォームの文字列から空白を除いた文字列が取得できました。
PHP:
-
-
foreach( $keyList as $key=>$val ){
-
-
}
参考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
さくらインターネットのスタンダードプランでは、Mysql5.1.30だった。
たいして考えないでCREATE TABLEすると、照合順序がujis_japanese_ci(EUC-JP)になってしまう。
utf8_general_ciを使いたいところです。文字化け防止の手順を。
DBは契約したときに1つだけ割り当てられてますが、DB自体を設定することはできないので、テーブル作成時、mysql_connect()した後、mysql_select_db()前にutf8に設定する必要があるようです。
CREATE TABLE時
テーブルの照合順序をutf8_general_ciに設定する。
PHP:
-
-
-
$sql = "CREATE TABLE `tablename` (data1,data2,...) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;";
-
$link = $db->Query( $sql );
INSERTやSELECT時
以下のように、接続した後にSET NAMES utf8をセットすると、INSERT,SELECTなどの時うまく日本語が文字化けせずに入りました。
charset, collateはconfigでdefineきっておけば良いですね。
参考リンク
MySQL 6.5.3 CREATE TABLE 構文
http://dev.mysql.com/doc/refman/4.1/ja/create-table.html
さぼてん:PHP+Mysql+UTF-8で文字化け対策
http://saboten009.blogspot.com/2008/01/phpmysqlutf-8.html

WindowsXP(SP2)で、新しいハードウェア(サウンドデバイス)などを使おうと、ドライバなどをインストールし、起動しようとすると、いきなり青画面になることがあります。
今回、新規デスクトップPCにXPをインストールし、使おうと思ったら2種類出てきたのでその対策をメモ。
サウンドとハードディスクでした。
Read more... »

CakePHPのテンプレートファイル.ctpをDreamweaver CS3で認識させ、さらにPHPのように振る舞うよう設定します。
テスト環境はWindowsXP環境。
ViewやLayoutのテンプレートCTPを通常のDreamweaverでは開けないので、設定ファイルを変更します。
Dreamweaver自体の設定は3箇所。
あと、エクスプローラで*.ctpファイルのプロパティを開き、アプリケーションを登録しておけば、PHPと同様の動作をしてくれます。
※ファイルを操作するので、一応環境設定でUTF-8にしておいてください。
Read more... »

掲示板などを作ったとき、携帯の入力フォームで、キャリアの違いによる絵文字変換が面倒な場合が多々あると思います。
AUで入力された絵文字をDocomoで見たときなどに出る文字化けです。
対応が面倒な場合は、「絵文字は自動的に削除されます」と一言加え、入力されてから確認画面に移行した時に削除しておけばOK。
AU,ソフトバンクで軽く確認済み
Read more... »

メルマガを含め、HTML形式のメールを作成するには、Thunderbirdが良いです。
Outlook2007では、受信側で正しく表示できないなどの例が出ているし、HTMLだと思っていたらXML形式のようです。
ホームページ作成ソフトなどでHTMLタグ記載し、それをThunderbirdにコピペする方法が一番安全に送れます。画像は外部のサーバにアップしてあるデータを利用することで、メール容量を軽減することが出来ます。
Read more... »
とにかくPDFのメモ。忘れないように。
PrimoPDF
Office文書やWebページなど印刷可能な各種ファイルをPDF文書として保存できるソフト。
http://www.forest.impress.co.jp/lib/offc/document/pdf/primopdf.html
Firefox Add-ons PrintPDF
FireFoxアドオンで閲覧しているWebページをPDF保存してくれる。
https://addons.mozilla.org/ja/firefox/addon/5971

ブラウザ表示のを印刷用にCSSを用意するtipsについてメモ。
普段はあまり印刷を気にすることがなくても、「自分の意図したとおりに印刷してほしい」時などがページによってはあるかもしれません。
とりあえずメモ用に印刷に関するものを取り上げてみる。
※メモなので途中です。
Read more... »

USB2.0接続の拡張マルチディスプレイアダプタ REX-USBDVI2を使うと、WUXGA(1920×1200)までの解像度でデュアルモニタ化することが出来ます。
いや、今回はDELL Inspiron 1720にはD-sub15ピンがついていて標準でデュアルモニタにできるので、さらにモニタを1つ追加することになり、トリプルモニタを実現することが出来ます。
Read more... »