[PHP-users 30164] Re: 半角文字列、全文字置換したい。
KOYAMA Tetsuji
koyama @ hoge.org
2006年 8月 28日 (月) 19:15:53 JST
小山です。
On 8/28/06, yusuke ito <ito.ysk @ gmail.com> wrote:
> define('FROM', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
> define('TO', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz');
この辺は
$from = implode('', array_merge(range('0', '9'), range('a', 'z'),
range('A', 'Z')));
$to= implode('', array_merge(range('A', 'Z'), range('0', '9'),
range('a', 'z')));
のように書けます。
以下余談:
置き換えも str_replace でできると思うんですが、今試したらどうも
バグってるくさい。
$from = range('A', 'Z');
$from[] = 'a';
$to = array_merge(range('0', '9'), range('a', 'z'), range('A', 'Z'));
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$result = str_replace($from, $to, $str);
var_dump($result);
$from に 'a' を追加しなければ大丈夫ですが、追加すると結果が
おかしくなります。
結果:
// $fom[] = 'a'; なし
string(26) "0123456789abcdefghijklmnop"
// $fom[] = 'a'; あり
string(26) "0123456789qbcdefghijklmnop"
--
小山哲志@ビート・クラフト
koyama @ beatcraft.com
koyama @ hoge.org
PHP-users メーリングリストの案内