
全角半角が混在している文字列の左から3文字を取得したい場合にいい方法はないでしょうか?
mb_substr関数で第3パラメータはバイト数で指定するようです。
関数リファレンスでは「最大文字数」って表現になってます。
http://php.net/manual/ja/function.mb-substr.php
半角なら文字数=バイト数ですが、全角だと指定の半分の文字数になります。
最大だから間違ってはないですが、文字数じゃないよな‥‥っていつも思ってます。
いったん半角→全角にして、6バイト分を切り出すのはできます。
でも、英数字も全角半角混在してるので元の文字列を壊したくないのです。
mb_substrの第3パラメータを6から3まで、mb_strlenが3になるまで回すのもやってみました。
でも、なんかスマートじゃないんですよ‥‥。
なにかこう、スマートないい手はないでしょうか? よろしくお願いします。
No.2ベストアンサー
- 回答日時:
ファイルの文字コードと、mb_internal_encodingとmb_substrの指定文字コードを
あわせてください
バイト数ではなく文字数だとわかると思います
<?PHP
mb_internal_encoding("UTF8");
$str="abcあいうxyz";
$substr=mb_substr($str,2,3,"UTF8");
print $substr;
?>
回答ありがとうです。
あれ‥‥? エンコード指定はあってるはずなのに、あってない?
:
:
ホントだ、あってなかった。あれー? なぜ?
すみません、ちょっと間抜けな自分に気が付いてしまいました。
ベストアンサーに選ばせてもらいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PPT ファイルの文字カウント=...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
Accessの文字数を調べたい
-
記号は半角と全角どちらがよい...
-
メッセージボックスで1025文字...
-
海外購入PCでLENB関数を機能さ...
-
全角括弧と全角読点の間隔を狭...
-
VBAのコマンドボタンの文字列の...
-
改行コード(CR/LF)の設...
-
C++で空Enterの入力を判...
-
[php][正規表現]タグ以外を削除...
-
英文のピリオドでのみの改行の仕方
-
文字化け変換方法
-
Excel VBAからBeckyを起動して...
-
テキストボックスの回転
-
COBOLの改行
-
ソースコードの1行が長いとき...
-
文字列から、特定の文字を削除...
-
ASP.NET(C#)とhtmlの#include
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PPT ファイルの文字カウント=...
-
エクセルのCOUNTIFが正しくカウ...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
エクセルでの漢字、カタカナ、...
-
XMLのタグ名の禁則文字
-
半角記号、全角記号を含む正規...
-
Phonetic関数を利用して文章中...
-
Replace関数は文字数の制限ある...
-
VBAで英数字入力チェックしたい。
-
文字列中の両丸括弧を取り除くV...
-
記号は半角と全角どちらがよい...
-
全角英数文字が嫌われる理由を...
-
バッチファイル 全角検索
-
VBScriptである文字列に半角文...
-
IT企業の技術屋にとって全角英...
-
半角スペース の文字化け...
-
ExcelのVBAでカタカナをチェッ...
おすすめ情報