今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 簡単なPHPスクリプトを動かしてみよう
  3. ファイルから1行ずつ読み込む - fgets()
  4. ユニークなファイル名の一時ファイルを作成 - tempnam()
  5. ヒアドキュメント

文字列の幅を取得 - mb_strwidth()

当ページのリンクには広告が含まれています。

Webプログラミング言語PHPで、指定した文字列の幅を取得するmb_strwidth関数を紹介します。

mb_strwidth関数

int mb_strwidth ( string $string [, string $encoding ] )
指定した文字列の幅を取得します。
引数
$string
幅を取得する文字列を指定します。
$encoding
エンコーディングを指定します。
エンコーディングの指定を省略した場合は、 内部エンコーディングを使用します。
返り値
指定した文字列の幅を返します。
マルチバイト文字はバイト文字の倍の幅を返します。

内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring

サンプルコード

指定した文字列の幅を取得するサンプルコードです。バイト文字、マルチバイト文字、バイト文字とマルチバイト文字を混合した文字列の幅を取得しています。

mb_strwidth( 文字列 )
mb_strwidth( 文字列, エンコーディング )
<?php
/* 文字列の幅を取得 */
//バイト文字
$string = "PHP";
var_dump(mb_strwidth($string));

//マルチバイト文字
$string = "プログラミング入門";
var_dump(mb_strwidth($string, "UTF-8"));

//混合
//混合
$string = "PHPプログラミング入門";
var_dump(mb_strwidth($string, "UTF-8"));
?>

実行結果です。バイト文字「PHP」は、文字列の幅が「3」。マルチバイト文字「プログラミング入門」は、文字数「9」、文字列の幅が「18」。混合は「PHP」の文字列の幅が「3」、「プログラミング入門」の文字列の幅が「18」なので、合わせて「21」になっています。

int(3)
int(18)
int(21)

文字列 の人気記事

  1. 配列を文字列に変換する - implode()
  2. 文字列の長さを取得 - strlen()、mb_strlen()
  3. 区切り文字列を配列に変換 - explode()
  4. 文字列を指定した幅に調節 - mb_strimwidth()
  5. 指定した文字列以降の文字列を取得 - strstr()、strchr() - mb_strstr()
  6. 文字列をエスケープ・アンエスケープ - addslashes()、stripslashes()
  7. JSON形式の文字列をオブジェクト、連想配列にデコード - json_decode()
  8. 文字をASCIIコードに変換 - ord関数
  9. ASCIIコードを特定の文字に変換 - chr()
  10. 文字列の一部分を取得 - substr()、mb_substr()

関連記事(一部広告含む)