文字列関数

PHPの文字列操作において、「文字列関数」は非常に重要な役割を果たします。文字列関数とは、文字列を生成・検索・置換・変換・解析・フォーマットするために使用される関数のことです。PHPには豊富な文字列関数が用意されており、効率的なテキスト処理が可能です。以下に、代表的な文字列関数とその用途を分類して詳しく説明します。


1. 文字列の長さを取得する関数

  • strlen(string $string)
    文字列の長さ(バイト数)を返します。マルチバイト文字(日本語など)を含む場合は注意が必要です。

    php
    echo strlen("Hello"); // 5 echo strlen("こんにちは"); // 15(UTF-8で1文字3バイトの場合)
  • mb_strlen(string $string)
    マルチバイト文字を正しく扱いたい場合はこちらを使用します。

    php
    echo mb_strlen("こんにちは"); // 5

2. 文字列の一部を取得する関数

  • substr(string $string, int $start, ?int $length = null)
    指定した位置から部分文字列を取得します。

    php
    echo substr("abcdef", 1, 3); // bcd
  • mb_substr(string $string, int $start, ?int $length = null)
    マルチバイト対応版です。

    php
    echo mb_substr("こんにちは", 2, 2); // にちは → にち

3. 文字列の検索・位置取得

  • strpos(string $haystack, string $needle)
    部分文字列の最初の出現位置を取得します(見つからない場合は false)。

    php
    echo strpos("apple", "p"); // 1
  • strrpos(string $haystack, string $needle)
    最後に出現する位置を取得します。

  • mb_strpos / mb_strrpos
    マルチバイト文字列対応。


4. 文字列の置換

  • str_replace(mixed $search, mixed $replace, mixed $subject)
    指定文字列を置換します。

    php
    echo str_replace("world", "PHP", "Hello world"); // Hello PHP
  • preg_replace(string|array $pattern, string|array $replacement, string|array $subject)
    正規表現による置換が可能です。

    php
    echo preg_replace("/[0-9]/", "*", "a1b2c3"); // a*b*c*

5. 文字列の分割・結合

  • explode(string $delimiter, string $string)
    区切り文字で分割して配列にします。

    php
    print_r(explode(",", "apple,banana,grape"));
  • implode(string $glue, array $pieces)
    配列を文字列として結合します。

    php
    echo implode("-", ["2025", "05", "03"]); // 2025-05-03

6. 文字列のトリミング

  • trim(string $string)
    前後の空白や改行を削除します。

    php
    echo trim(" Hello "); // "Hello"
  • ltrim() / rtrim()
    左側または右側のみをトリミングします。


7. 大文字・小文字の変換

  • strtolower(string $string)
    すべて小文字に変換。

  • strtoupper(string $string)
    すべて大文字に変換。

  • ucfirst(string $string)
    先頭文字を大文字に変換。

  • mb_strtolower / mb_strtoupper
    マルチバイト対応。


8. 文字列のフォーマット・比較

  • sprintf(string $format, mixed ...$values)
    書式付きの文字列を生成します。

    php
    echo sprintf("合計: ¥%d", 1200); // 合計: ¥1200
  • strcmp(string $str1, string $str2)
    文字列を比較し、等しいかどうかを判定します(大小比較も可能)。


まとめ

PHPの文字列関数は、シンプルなものから複雑な正規表現処理まで幅広く対応しており、文字列を効率的に操作・解析するための強力なツールセットです。特に日本語などマルチバイト文字列を扱う場合は、mb_系の関数を積極的に使うことが推奨されます。

生成日:2025/05/03