作成日:2017-11-28, 更新日:2018-03-20
大文字と小文字
- 大文字→小文字
-
echo strtolower(文字列)
- 小文字→大文字
-
echo strtoupper(文字列)
仮名とカナ、全角と半角たち
echo mb_convert_kana(文字列, オプション)
オプション
| r | 「全角」英字を「半角」に変換 | R | 「半角」英字を「全角」に変換 |
|---|---|---|---|
| n | 「全角」数字を「半角」に変換 | N | 「半角」数字を「全角」に変換 |
| a | 「全角」英数字を「半角」に変換 | A | 「半角」英数字を「全角」に変換 |
| s | 「全角」スペースを「半角」に変換(U+3000 -> U+0020) | S | 「半角」スペースを「全角」に変換(U+0020 -> U+3000) |
| k | 「全角カタカナ」を「半角カタカナ」に変換 | K | 「半角カタカナ」を「全角カタカナ」に変換 |
| h | 「全角ひらがな」を「半角カタカナ」に変換 | H | 「半角カタカナ」を「全角ひらがな」に変換 |
| c | 「全角カタカナ」を「全角ひらがな」に変換 | C | 「全角ひらがな」を「全角カタカナ」に変換 |
| V | 濁点付きの文字を一文字に変換"K", "H" と共に使用 |
- KVで変換
- 半角カタカナから全角カタカナへの変換。「ヷ・ヺ」が変換されない
- HVで変換
- 半角カタカナからひらがなへの変換。「ゔ」が変換されない
- cで変換
- 全角カタカナからひらがなへの変換。「ヴヽヾヵヶ」は変換されない。また、ひらがなに無い「ヷヸヹヺ」も変換されない
- cで変換
- 全角カタカナからひらがなへの変換。「ヴヽヾヵヶ」は変換されない。また、ひらがなに無い「ヷヸヹヺ」も変換されない
- KVで変換
- 濁点・半濁点の結合「U+309B」「U+309C」。半角カタカナからの変換の時以外には何も変換されない
- aで変換
- 全角英数字から半角英数字への変換。「"'\~」は変換されない
- Aで変換
- 半角英数字から全角英数字への変換。「" ' \ ~」は変換されない
検索させるとき
検索する文字と元データの文字を誰が入力するのかが問題。
空白や全角、カナなど考慮するのが面倒なので、検索前に少し調整しておきたい。
function chgWord($word) {
$fixWord = $word;
// KVC:「半角カナ(濁点付きの文字)、全角かな」を「全角カナ」
// a :「全角英数字」を「半角英数字」
// s :「全角スペース」を「半角スペース」
$fixWord = mb_convert_kana($fixWord, 'KVCas');
// mb_convert_kana()で対応できなかった記号変換
$seedAry = array('"', ''', '\', '~',);
$chngAry = array('"', "'", "\\", '~',);
$fixWord = str_replace($seedAry, $chngAry, $fixWord);
// 空白やタブ、改行等を削除
$spceAry = array(' ', "\t", "\n", "\r", "\0", "\x0B");
$fixWord = str_replace($spceAry, '', $fixWord);
// 大文字→小文字
$fixWord = strtolower($fixWord);
return $fixWord;
}