- 締切済み
文字列関数をうまく表示させたい
今、文字列関数をしています。参考書通りにしたのですが、ブラウザでは思い通りに表示されません。 <?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」が表示されます。どうしてなのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tany180sx
- ベストアンサー率63% (239/379)
PHPが全角・半角の違いでは?? mb_strlenはmb_strlen($str, 'UTF-8')とすれば意図した値になるかと。
- SAYKA
- ベストアンサー率34% (944/2776)
扱ってる文字コードが誓うからだね。 その参考書、文字コードがUTF-8なんだけど 動作させてる方はEUC-JPやShift_JISだったりするんじゃない?
お礼
あぁ~そうですね。 参考書がEUC-JPっぽくて、動作環境はUTF-8ですね。 これが原因だったんですね。 ここまではうまく動作していたのですが、バイトの問題になってくると違う表記になるんですかね!? かなり助かりました。ありがとうございました。
お礼
PHPが全角・半角の違いか??についてですが、半角ですね。ここでは間違えて全角にしていますが・・・。 >mb_strlenはmb_strlen($str, 'UTF-8')とすれば意図した値になる>かと。 ありがとうございました。うまくいきました。あとは上の方だけですね。