Rubyレシピブックを元にPHPで書いてみる.その2
レシピ25 文字列の長さを得る
ソース
<?php echo ("バイト数=>"); echo strlen("こんにちは、PHP"); echo PHP_EOL;//改行 echo ("文字数=>"); echo mb_strlen("こんにちは、PHP","Shift-JIS"); //コマンドライン実行なので文字エンコード指定しないとおかしな値になる ?>
実行
C:\php\recipe>php 002.php バイト数=>15 文字数=>9
ちなみにRubyだと・・・
print ("バイト数=>"); print ("こんにちは、Ruby").length; print ("\n"); print ("文字数=>"); print ("こんにちは、Ruby").split(//).length;
C:\ruby\recipe>ruby -Ks 002.rb バイト数=>16 文字数=>10
(-KsでShift-JISをセット)
PHPもRubyも、正しい文字エンコードでないと文字数がおかしくなる。
あたりまえか。