• 締切済み

文字列関数をうまく表示させたい

今、文字列関数をしています。参考書通りにしたのですが、ブラウザでは思い通りに表示されません。 <?php $str = "PHPの絵本"; $length = strlen($str); ?> を表示させたいのですが、 <?php $str = "PHPの絵本"; $length = strlen($str); print $length; ?> で良いのではと思って、ブラウザで表示させたのですが、参考書では 「9」が表示されるみたいなのですが、「12」が表示されます。 さらに <?php $str = "PHPの絵本"; $length = mb_strlen($str); ?> も表記させたいのですが、同様に <?php $str = "PHPの絵本"; $length = mb_strlen($str); print $length; ?> と書きこんだのですが、参考書では「6」が出るみたいのなのですが 自分のブラウザでは「12」が表示されます。どうしてなのでしょうか?

みんなの回答

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

PHPが全角・半角の違いでは?? mb_strlenはmb_strlen($str, 'UTF-8')とすれば意図した値になるかと。

kjfcaoi
質問者

お礼

PHPが全角・半角の違いか??についてですが、半角ですね。ここでは間違えて全角にしていますが・・・。 >mb_strlenはmb_strlen($str, 'UTF-8')とすれば意図した値になる>かと。 ありがとうございました。うまくいきました。あとは上の方だけですね。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

扱ってる文字コードが誓うからだね。 その参考書、文字コードがUTF-8なんだけど 動作させてる方はEUC-JPやShift_JISだったりするんじゃない?

kjfcaoi
質問者

お礼

あぁ~そうですね。 参考書がEUC-JPっぽくて、動作環境はUTF-8ですね。 これが原因だったんですね。 ここまではうまく動作していたのですが、バイトの問題になってくると違う表記になるんですかね!? かなり助かりました。ありがとうございました。

関連するQ&A