更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/18 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
str_replace
str_replace()関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
echo "【PHP】関数<br>\n";
echo "文字列関数:str_replace<br>\n";
// 文字列の置換
echo ":" . str_replace("リンゴ", "Apple", "ばななのリンゴはおいしい") . ":<br>\n";
// 配列も置換できる
$src_strs = ["apple", "バナナ", "ブドウ"];
$rep_strs = ["リンゴ", "banana", "grepe"];
$target_strs = [
"ばななの実はappleではない",
"おさるの好きなものはバナナだ",
"このガムはブドウ味だ、ブドウ味に違いない" ];
$ret_strs = str_replace($src_strs, $rep_strs, $target_strs);
foreach($ret_strs as $var) {
echo ":" . $var . ":<br>\n";
}
?>
実行結果は次の通りです。
・画面

・HTML
【PHP】関数<br>
文字列関数:str_replace<br>
:ばななのAppleはおいしい:<br>
:ばななの実はリンゴではない:<br>
:おさるの好きなものはbananaだ:<br>
:このガムはgrepe味だ、grepe味に違いない:<br>
strcmp、strncmp
strcmp()、strncmp()関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
echo "【PHP】関数<br>\n";
echo "文字列関数:strcmp、strncmp<br>\n";
$str1 = "a"; $str2 = "b";
echo "$str1 と $str2 をstrcmpで比較:" . strcmp($str1, $str2) . "<br>\n";
$str1 = "abcde"; $str2 = "abcc";
echo "$str1 と $str2 をstrcmpで比較:" . strcmp($str1, $str2) . "<br>\n";
$str1 = "bcd"; $str2 = "bcd";
echo "$str1 と $str2 をstrcmpで比較:" . strcmp($str1, $str2) . "<br>\n";
$str1 = "あいう"; $str2 = "あい";
echo "$str1 と $str2 をstrcmpで比較:" . strcmp($str1, $str2) . "<br>\n";
$str1 = "abcde"; $str2 = "abcc";
echo "$str1 と $str2 をstrncmpで先頭から4文字比較:" . strncmp($str1, $str2, 4) . "<br>\n";
$str1 = "abcde"; $str2 = "abcc";
echo "$str1 と $str2 をstrncmpで先頭から3文字比較:" . strncmp($str1, $str2, 3) . "<br>\n";
$str1 = "あいうおか"; $str2 = "あいうえお";
echo "$str1 と $str2 をstrncmpで先頭から3文字比較:" . strncmp($str1, $str2, 3) . "<br>\n";
// 結果は0以外になるはずであるが、0、正しく比較されていない
$str1 = "あいうおか"; $str2 = "あいうえお";
echo "$str1 と $str2 をstrncmpで先頭から4文字比較:" . strncmp($str1, $str2, 4) . "<br>\n";
?>
実行結果は次の通りです。
・画面

・HTML
【PHP】関数<br>
文字列関数:strcmp、strncmp<br>
a と b をstrcmpで比較:-1<br>
abcde と abcc をstrcmpで比較:1<br>
bcd と bcd をstrcmpで比較:0<br>
あいう と あい をstrcmpで比較:3<br>
abcde と abcc をstrncmpで先頭から4文字比較:1<br>
abcde と abcc をstrncmpで先頭から3文字比較:0<br>
あいうおか と あいうえお をstrncmpで先頭から3文字比較:0<br>
あいうおか と あいうえお をstrncmpで先頭から4文字比較:1<br>
strlen
strlen()関数を使用したサンプルプログラムです。
PHPの文字コードはUTF-8を使用しているため、日本語は1文字3バイト換算で計算されます。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
echo "【PHP】関数<br>\n";
echo "文字列関数:strlen<br>\n";
echo "\"\":" . strlen("") . ":<br>\n";
echo "abcde:" . strlen("abcde") . ":<br>\n";
// マルチバイトの場合、文字数ではなく、バイト数になることに注意
// UTF-8のため、日本語は1文字3バイトの換算
echo "文字列の長さ:" . strlen("文字列の長さ") . ":<br>\n";
?>
実行結果は次の通りです。
・画面

・HTML
【PHP】関数<br>
文字列関数:strlen<br>
"":0:<br>
abcde:5:<br>
文字列の長さ:18:<br>
strpos
strpos()関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
echo "【PHP】関数<br>\n";
echo "文字列関数:strpos<br>\n";
exec_strpos("abcdefghi", "c", 0);
exec_strpos("abcdefghi", "c", 2);
exec_strpos("abcdefghi", "c", 3);
exec_strpos("abcdefghi", "A", 0);
exec_strpos("abcdefghi", "def", 0);
exec_strpos("ハローワールド", "わー", 0);
exec_strpos("ハローワールド", "ワー", 0);
exec_strpos("ハローワールド", "ロ", 0);
function exec_strpos(string $var, string $src, int $pos) :void {
if ($pos === 0) {
echo "${var}で${src}の表示位置:" . strpos($var, $src) . ":<br>\n";
} else {
echo "${var}で${src}の表示位置、開始位置:${pos}:";
echo strpos($var, $src, $pos) . ":<br>\n";
}
}
?>
実行結果は次の通りです。
・画面

・HTML
【PHP】関数<br>
文字列関数:strpos<br>
abcdefghiでcの表示位置:2:<br>
abcdefghiでcの表示位置、開始位置:2:2:<br>
abcdefghiでcの表示位置、開始位置:3::<br>
abcdefghiでAの表示位置::<br>
abcdefghiでdefの表示位置:3:<br>
ハローワールドでわーの表示位置::<br>
ハローワールドでワーの表示位置:9:<br>
ハローワールドでロの表示位置:3:<br>
strstr
strstr()関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
echo "【PHP】関数<br>\n";
echo "文字列関数:strstr<br>\n";
exec_strstr("abcdefghi", "c");
exec_strstr("abcdefghi", "c", true);
exec_strstr("abcdefghi", "A");
exec_strstr("abcdefghi", "def");
exec_strstr("ハローワールド", "わー");
exec_strstr("ハローワールド", "ワー");
exec_strstr("ハローワールド", "ロ", true);
function exec_strstr(string $var, string $src, bool $flg = false) :void {
echo "対象文字列:${var}: 検索文字列:${src}:";
if($flg === true) {
echo " :検索文字列の前:" . strstr($var, $src, $flg) . ":<br>\n";
return ;
}
echo " :検索文字列の後:" . strstr($var, $src) . ":<br>\n";
}
?>
実行結果は次の通りです。
・画面

・HTML
【PHP】関数<br>
文字列関数:strstr<br>
対象文字列:abcdefghi: 検索文字列:c: :検索文字列の後:cdefghi:<br>
対象文字列:abcdefghi: 検索文字列:c: :検索文字列の前:ab:<br>
対象文字列:abcdefghi: 検索文字列:A: :検索文字列の後::<br>
対象文字列:abcdefghi: 検索文字列:def: :検索文字列の後:defghi:<br>
対象文字列:ハローワールド: 検索文字列:わー: :検索文字列の後::<br>
対象文字列:ハローワールド: 検索文字列:ワー: :検索文字列の後:ワールド:<br>
対象文字列:ハローワールド: 検索文字列:ロ: :検索文字列の前:ハ:<br>
コメント