PHPでハイフンを含む形式で電話番号をフォーマットする方法


function formatPhoneNumber($phoneNumber) {
  // 数字以外の文字を削除する
  $phoneNumber = preg_replace('/[^0-9]/', '', $phoneNumber);
  // 電話番号の長さが10桁未満または11桁以上の場合はエラーを返す
  if (strlen($phoneNumber) < 10 || strlen($phoneNumber) > 11) {
    return 'エラー: 電話番号の長さが正しくありません。';
  }
// 11桁の場合は最初の1桁を削除する
  if (strlen($phoneNumber) === 11) {
    $phoneNumber = substr($phoneNumber, 1);
  }
// ハイフンを挿入してフォーマットする
  $formattedPhoneNumber = substr($phoneNumber, 0, 3) . '-' . substr($phoneNumber, 3, 4) . '-' . substr($phoneNumber, 7);
  return $formattedPhoneNumber;
}
// 使用例
$phoneNumber = '09012345678';
$formattedPhoneNumber = formatPhoneNumber($phoneNumber);
echo $formattedPhoneNumber; // 結果: 090-1234-5678

上記のコードでは、formatPhoneNumberという関数を定義しています。この関数は、与えられた電話番号を数字のみの形式に変換し、適切な長さであるかを確認します。11桁の場合は最初の1桁を削除し、最後にハイフンを挿入してフォーマットされた電話番号を返します。

使用例では、$phoneNumber変数に電話番号を代入し、formatPhoneNumber関数を呼び出してフォーマットされた電話番号を取得し、それを表示しています。

この方法を使用すると、PHPで電話番号をハイフンを含む形式で簡単にフォーマットすることができます。