目次
文字列の長さを調べる
文字列の長さを調べるには strlen
関数を使います。
<?php
echo strlen('Hello'); // => 5
strlen
関数は日本語などのマルチバイト文字列に対しては正しく動作しません。マルチバイト文字列に対しては代わりに mb_strlen
を使ってください。
<?php
echo mb_strlen('こんにちは'); // => 5
文字列の中に指定した文字列が含まれるかを調べる
strpos
、 mb_strpos
関数
strpos
関数を使うと文字列内に指定した文字列が含まれるかを調べることができます。
文字列が含まれていれば、その文字列が含まれている位置を返します。
<?php
$s = 'Hello, World!';
echo strpos($s, 'H'); // => 0
echo strpos($s, 'llo'); // => 2
文字列が含まれていなければ FALSE
を返します。
strpos
関数は日本語などのマルチバイト文字列に対しては正しく動作しません。マルチバイト文字列に対しては代わりに mb_strpos
を使ってください。
<?php
$s = 'こんにちは、世界';
echo mb_strpos($s, 'こ'); // => 0
echo mb_strpos($s, 'ん'); // => 1
strrpos
、 mb_strrpos
関数
strpos
関数、 mb_strpos
関数は指定文字列が最初に見つかった位置を返しますが、strrpos
関数、 mb_strrpos
関数は最後に見つかった位置を返します。
<?php
$s = 'Hello, World!';
echo strpos($s, 'o'); // => 4
echo strrpos($s, 'o'); // => 8
echo mb_strrpos($s, 'o'); // => 8
文字列の先頭が指定した文字列かどうかを調べる
strpos
関数、または mb_strpos
関数を用いて文字列の先頭が指定した文字列かどうかを調べることができます。
<?php
function starts_with($haystack, $needle) {
return mb_strpos($haystack, $needle) === 0;
}
if (starts_with('こんにちは、世界', 'こんにちは')) {
// ...
}
文字列の末尾が指定した文字列かどうかを調べる
strrpos
関数、または mb_strrpos
関数を用いて文字列の末尾が指定した文字列かどうかを調べることができます。
<?php
function ends_with($haystack, $needle) {
return mb_strpos($haystack, $needle) === mb_strlen($haystack) - mb_strlen($needle);
}
$haystack = 'こんにちは、世界';
$needle = '世界';
if (ends_with($haystack, $needle)) {
// ...
}
正規表現にマッチするかを調べる
正規表現にマッチするかを調べるには preg_match
関数を使います。
第3引数を指定した場合、マッチした結果が代入されます。
<?php
if (preg_match('/^Hello, (.*)!$/', 'Hello, World!', $match) > 0) {
echo $match[0]; // => Hello, World!
echo $match[1]; // => World
}