かなり前に依頼を受けて納品したウェブサイト、その担当者から、「カナ五十音順の一覧ページで表示されない項目がいくつかあることが分かった」という連絡が来た。
調べて見ると、それらの項目はデータベースには存在しているし、登録状態に問題ない。
次に、五十音順で抽出している処理を見てみると、
[php]
$CONFIG[’50on’] = array(
‘ア’ => array(‘ア’,’イ’,’ウ’,’エ’,’オ’),
‘カ’ => array(‘カ’,’キ’,’ク’,’ケ’,’コ’),
‘サ’ => array(‘サ’,’シ’,’ス’,’セ’,’ソ’),
‘タ’ => array(‘タ’,’チ’,’ツ’,’テ’,’ト’),
‘ナ’ => array(‘ナ’,’ニ’,’ヌ’,’ネ’,’ノ’),
‘ハ’ => array(‘ハ’,’ヒ’,’フ’,’ヘ’,’ホ’),
‘マ’ => array(‘マ’,’ミ’,’ム’,’メ’,’モ’),
‘ヤ’ => array(‘ヤ’,’ユ’,’ヨ’),
‘ラ’ => array(‘ラ’,’リ’,’ル’,’レ’,’ロ’),
‘ワ’ => array(‘ワ’,’ヲ’,’ン’));
[/php]
↑なるほど。正解はこう↓。
[php]
$CONFIG[’50on’] = array(
‘ア’ => array(‘ア’,’イ’,’ウ’,’エ’,’オ’,’ヴ’),
‘カ’ => array(‘カ’,’キ’,’ク’,’ケ’,’コ’,’ガ’,’ギ’,’グ’,’ゲ’,’ゴ’),
‘サ’ => array(‘サ’,’シ’,’ス’,’セ’,’ソ’,’ザ’,’ジ’,’ズ’,’ゼ’,’ゾ’),
‘タ’ => array(‘タ’,’チ’,’ツ’,’テ’,’ト’,’ダ’,’ヂ’,’ヅ’,’デ’,’ド’),
‘ナ’ => array(‘ナ’,’ニ’,’ヌ’,’ネ’,’ノ’),
‘ハ’ => array(‘ハ’,’ヒ’,’フ’,’ヘ’,’ホ’,’バ’,’ビ’,’ブ’,’ベ’,’ボ’,’パ’,’ピ’,’プ’,’ペ’,’ポ’),
‘マ’ => array(‘マ’,’ミ’,’ム’,’メ’,’モ’),
‘ヤ’ => array(‘ヤ’,’ユ’,’ヨ’),
‘ラ’ => array(‘ラ’,’リ’,’ル’,’レ’,’ロ’),
‘ワ’ => array(‘ワ’,’ヲ’,’ン’));
[/php]
今さら見つかったバグでした。人間は失敗する生き物。