詳解PHP ビルトイン関数編 復習も兼ねて
タイトルの通り、ビルトイン関数編の復習も兼ねて、アウトプットしていこうと思います。
ビルトイン関数とはあらかじめPHPに組み込まれている関数のことで、strlen()、number_format()関数など便利な機能があるわけですが、こうした関数は自分で実装することもできますが、あらかじめよく使われるものはPHPが用意してくれているので、開発を効率的に行うことができます。
公式サイトの、php.netよりビルトイン関数や使い方を参照することができます。公式サイトは、英語で書かれているページになるので、googleより工夫して検索すると日本語でも検索することができます。
続いて、実際のビルトイン関数についても確認していきます。
sprintf()関数
文字列の幅や、小数点以下の桁数など指定したフォーマットの文字列を生成します。また、単に指定したフォーマットで表示したいときは、printf()関数を使用します。
コード
$name = 'Banana';
$score = '32.235';
$info = sprintf("[%10s][%10.2f]",$name, $score);
echo $info;
出力結果
> [ Banana][ 32.23]
strlen()関数
文字列の文字数を調べるときに使用する関数。
trim()関数
文字列の前後から空白を削除する関数。
strpos()関数
文字列の中から指定した文字を検索してインデックス番号を返却します。
str_replace()関数
文字列の中から特定の文字を指定した文字に置換する関数。
使い方としては次の通りになります。
コード
$name = ' ex_name ';
echo strlen($name) . PHP_EOL;
$name = trim($name);
echo strlen($name) . PHP_EOL;
$index = strpos($name, '_');
echo $index . PHP_EOL;
$name = str_replace('_', '-', $name);
echo $name . PHP_EOL;
出力結果
11
7
2
ex-name
続いてマルチバイト文字列についてです。上記で取り上げた文字列を操作する関数はマルチバイトに対応していないため、日本語を取り扱うと想定と異なる結果となります。
そのため以下のマルチバイトに対応している関数を使用する必要があります。
・mb_strlen()関数
・mb_strpos()関数
特定のパターンで文字列を検索・置換する
電話番号やメールアドレスなど特定のパターンの文字列を検索したり置換する方法についてです。まず特定の文字列を検索するには、preg_matches関数を使用します。
$input = 'your phone number is 01-2345-6789 or 98-7654-3210';
$pattern = '/\d{2}-\d{4}-\d{4}/';
preg_match($pattern, $input, $matches);
print_r($matches);
検索したいパターンは変数$patternに正規表現で格納し、第1引数に渡します。また、第2引数には、検索対象の変数$inputを渡すことで、第3引数$matchesにマッチした結果を配列で格納します。
Array
(
[0] => 01-2345-6789
)
preg_match()関数では、最初にマッチした結果を配列で返すため、マッチした全ての結果を格納したい場合は、preg_match_all()関数を利用します。
$input = 'your phone number is 01-2345-6789 or 98-7654-3210';
$pattern = '/\d{2}-\d{4}-\d{4}/';
preg_match_all($pattern, $input, $matches);
print_r($matches);
Array
(
[0] => 01-2345-6789
[1] => 98-7654-3210
)
今回はここまでです。