【PHP8.x】iconv_strlen関数の使い方

作成日: 更新日:

iconv_strlen関数は、指定された文字エンコーディングに従って文字列の文字数を取得する関数です。PHPに標準で用意されているstrlen関数が文字列のバイト数を返すのに対し、この関数は日本語の「あ」のような1文字が複数バイトで構成されるマルチバイト文字を、正しく1文字として数えることができます。そのため、日本語やその他の多言語を含む文字列の正確な文字数を把握したい場合に不可欠です。第1引数に対象の文字列を、第2引数にその文字列の文字エンコーディング(例: 'UTF-8', 'SJIS-win')を指定します。第2引数の文字エンコーディングを省略した場合は、PHPの設定(iconv.internal_encoding)が適用されます。処理が成功した場合は文字数を整数で返し、指定された文字列がエンコーディングに対して不正であるなど、エラーが発生した場合はfalseを返します。同様の機能を持つ関数としてmb_strlenもありますが、これはmbstring拡張モジュールに属する関数です。

基本的な使い方

構文(syntax)

<?php
$string = "何らかの文字列";
$encoding = "UTF-8"; // または "Shift_JIS", "EUC-JP" など

$length = iconv_strlen($string, $encoding);
?>

引数(parameters)

string $string, ?string $encoding = null

  • string $string: 文字列の長さを取得したい対象の文字列
  • ?string $encoding = null: 文字列のエンコーディングを指定します。省略した場合、内部エンコーディングが使用されます

戻り値(return)

int|false

指定された文字エンコーディングにおける文字列のバイト数、またはfalseを返します。

【PHP8.x】iconv_strlen関数の使い方 | いっしー@Webエンジニア