PHPで指定した位置に文字列を挿入する方法を解説!

PHPで文字列の指定した位置へ、任意の文字列を挿入する方法いついてサンプルコードつきで解説します。

コンテンツ [表示]

  1. 1PHPで指定した位置に文字列を挿入したい
  2. 2PHPで指定した位置に文字列を挿入する方法
  3. 2.1PHPでバイト数を指定して文字列を挿入する
  4. 2.2PHPで全角文字列へ文字列を挿入する
  5. 2.3PHPで指定文字数毎に文字列を挿入する
  6. 3まとめ

PHPで指定した位置に文字列を挿入したい

PHPで指定した位置に文字列を挿入する方法について解説します。例えば

  • 郵便番号の3桁目にハイフンを入れたい
  • カード番号を4桁区切りにハイフンを入れたい
といったケースです。具体的なサンプルコードと共にご紹介していきます。

Photo byBoskampi

PHPで指定した位置に文字列を挿入する方法

PHPで指定した位置に文字列を挿入する方法を、ケース別にご紹介します。

PHPでバイト数を指定して文字列を挿入する

PHPでバイト数を指定して文字列を挿入するには、検索文字列に一致したすべての文字列を置換できるsubstr_replace関数を用います。

ここでは、郵便番号を例に解説していきます。

substr_replace関数で7桁の数値の、先頭から3バイト目へハイフン(-)を追加します。

先頭から3文字目の後ろへハイフンを追加

substr_replace('1638001', '-', 3, 0);

実行結果を書き出すと、下記の様になります。郵便番号のフォーマットになりました。

substr_replace関数はバイト数を指定する為、全角文字へ利用すると文字化けや正しく文字の挿入ができない場合がありますので注意してください。

PHPで全角文字列へ文字列を挿入する

技巧的な検索を行って文字列を挿入する場所を特定したい場合や、日本語などの全角文字列の中へ挿入したい場合はpreg_replace関数を使います。

郵便番号が全角数値だった場合を例に解説していきます。

先頭から3文字目の後ろへハイフンを追加

preg_replace("/^.{0,3}+\K/us", '-', '1638001');

全角7文字の文字列へpreg_replace関数で、先頭から3文字目へ全角ハイフン(-)を追加します。

実行結果を書き出すと、下記の様になります。全角の郵便番号フォーマットになりました。

PHPで指定文字数毎に文字列を挿入する

カード番号や顧客コードなど、決まった文字数で文字列を区切りたい場面があるかと思います。ここではカード番号を例に解説していきたいと思います。

4桁毎にハイフンを追加する

wordwrap('4012888888881881', 4, '-', true);

上記コードではwordwrap関数を使って、4バイト毎にハイフン(-)を追加しています。

実行結果を確認してみましょう。

4桁区切りにハイフンで(-)区切られていますね。

wordwrap関数もバイト数を指定する為、全角文字へ利用すると文字化けや正しく文字の挿入ができない場合がありますので注意してください。

まとめ



PHPで指定した位置に文字列を挿入する方法をご紹介しましたが、下記ではPHPで文字列の中にスペースを挿入する方法を解説しています。似通ったサンプルを、違った関数で解説しているものもあるので、ぜひ一緒に確認してみましょう。

あわせて読みたい
PHPで文字列の中にスペースを挿入する方法を解説!のイメージ
PHPで文字列の中にスペースを挿入する方法を解説!
PHPで文字列の中にスペースを挿入する方法についてご紹介します。カード番号や郵便番号の体裁を整え、可視性を高めるのに役立ちます。
GeekHive採用サイト

関連記事