更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/21 | JJI | ・”はじめに”の段落を追加 ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
サンプルプログラムの中で次の記事で載せている関数を使用している場合があります。
mb_strlen
mb_strlen()関数のサンプルプログラムです。
この関数ではマルチバイト文字の文字数をカウントできます。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】マルチバイト関数:mb_strlen<br>\n";
$str1 = "abcdefghijk";
echo "文字列:" . $str1 . "<br>\n";
echo 'strlen():' . strlen($str1) . "<br>\n";
echo 'mb_strlen():' . mb_strlen($str1) . "<br>\n";
echo "<br>\n";
$str2 = "abcdefghijk";
echo "文字列:" . $str2 . "<br>\n";
// UTF-8の場合、全角文字は1文字3バイト
// 半角8文字×1バイト+全角3文字×3バイト = 8 + 9 = 17バイトになる
echo 'strlen():' . strlen($str2) . "<br>\n";
echo 'mb_strlen():' . mb_strlen($str2) . "<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_05_06.php<br>
【PHP】マルチバイト関数:mb_strlen<br>
文字列:abcdefghijk<br>
strlen():11<br>
mb_strlen():11<br>
<br>
文字列:abcdefghijk<br>
strlen():17<br>
mb_strlen():11<br>
mb_strpos
mb_strpos()関数のサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】マルチバイト関数:mb_strpos<br>\n";
$str1 = "Hello World, Hello, Mary, Did you receive the message?";
echo "文字列:" . $str1 . "<br>\n";
echo 'strpos($str1, "Hello"):' . strpos($str1, "Hello") . ":<br>\n";
echo 'mb_strpos($str1, "Hello"):' . mb_strpos($str1, "Hello") . ":<br>\n";
echo 'strpos($str1, "Mary"):' . strpos($str1, "Mary") . ":<br>\n";
echo 'mb_strpos($str1, "Mary"):' . mb_strpos($str1, "Mary") . ":<br>\n";
echo 'strpos($str1, "Hello"):' . strpos($str1, "Hello", 3) . ":<br>\n";
echo 'mb_strpos($str1, "Hello"):' . mb_strpos($str1, "Hello", 3) . ":<br>\n";
echo 'strpos($str1, "Hallo"):' . strpos($str1, "Hallo") . ":<br>\n";
echo 'mb_strpos($str1, "Hallo"):' . mb_strpos($str1, "Hallo") . ":<br>\n";
echo "<br>\n";
$str2 = "ハローワールド、ハロー、Mary、メッセージは届いた?";
echo "文字列:" . $str2 . "<br>\n";
echo 'strpos($str2, "ハロー"):' . strpos($str2, "ハロー") . ":<br>\n";
echo 'mb_strpos($str2, "ハロー"):' . mb_strpos($str2, "ハロー") . ":<br>\n";
echo 'strpos($str2, "Mary"):' . strpos($str2, "Mary") . ":<br>\n";
echo 'mb_strpos($str2, "Mary"):' . mb_strpos($str2, "Mary") . ":<br>\n";
echo 'strpos($str2, "ハロー"):' . strpos($str2, "ハロー", 3) . ":<br>\n";
echo 'mb_strpos($str2, "ハロー"):' . mb_strpos($str2, "ハロー", 3) . ":<br>\n";
echo 'strpos($str2, "ヘロー"):' . strpos($str2, "ヘロー") . ":<br>\n";
echo 'mb_strpos($str2, "ヘロー"):' . mb_strpos($str2, "ヘロー") . ":<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_05_07.php<br>
【PHP】マルチバイト関数:mb_strpos<br>
文字列:Hello World, Hello, Mary, Did you receive the message?<br>
strpos($str1, "Hello"):0:<br>
mb_strpos($str1, "Hello"):0:<br>
strpos($str1, "Mary"):20:<br>
mb_strpos($str1, "Mary"):20:<br>
strpos($str1, "Hello"):13:<br>
mb_strpos($str1, "Hello"):13:<br>
strpos($str1, "Hallo")::<br>
mb_strpos($str1, "Hallo")::<br>
<br>
文字列:ハローワールド、ハロー、Mary、メッセージは届いた?<br>
strpos($str2, "ハロー"):0:<br>
mb_strpos($str2, "ハロー"):0:<br>
strpos($str2, "Mary"):36:<br>
mb_strpos($str2, "Mary"):12:<br>
strpos($str2, "ハロー"):24:<br>
mb_strpos($str2, "ハロー"):8:<br>
strpos($str2, "ヘロー")::<br>
mb_strpos($str2, "ヘロー")::<br>
mb_strstr
mb_strstr()関数のサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】マルチバイト関数:mb_strstr<br>\n";
$str1 = "Hello World, Hello, Mary, Did you receive the message?";
echo "文字列:" . $str1 . "<br>\n";
echo 'strstr($str1, "ll"):' . strstr($str1, "ll") . ":<br>\n";
echo 'mb_strstr($str1, "ll"):' . mb_strstr($str1, "ll") . ":<br>\n";
echo 'strstr($str1, "Mary"):' . strstr($str1, "Mary") . ":<br>\n";
echo 'mb_strstr($str1, "Mary"):' . mb_strstr($str1, "Mary") . ":<br>\n";
echo 'strstr($str1, "ll"):' . strstr($str1, "ll", true) . ":<br>\n";
echo 'mb_strstr($str1, "ll"):' . mb_strstr($str1, "ll", true) . ":<br>\n";
echo 'strstr($str1, "Hallo"):' . strstr($str1, "Hallo") . ":<br>\n";
echo 'mb_strstr($str1, "Hallo"):' . mb_strstr($str1, "Hallo") . ":<br>\n";
echo "<br>\n";
$str2 = "ハローワールド、ハロー、Mary、メッセージは届いた?";
echo "文字列:" . $str2 . "<br>\n";
echo 'strstr($str2, "ロー"):' . strstr($str2, "ロー") . ":<br>\n";
echo 'mb_strstr($str2, "ロー"):' . mb_strstr($str2, "ロー") . ":<br>\n";
echo 'strstr($str2, "Mary"):' . strstr($str2, "Mary") . ":<br>\n";
echo 'mb_strstr($str2, "Mary"):' . mb_strstr($str2, "Mary") . ":<br>\n";
echo 'strstr($str2, "ロー"):' . strstr($str2, "ロー", true) . ":<br>\n";
echo 'mb_strstr($str2, "ロー"):' . mb_strstr($str2, "ロー", true) . ":<br>\n";
echo 'strstr($str2, "ヘロー"):' . strstr($str2, "ヘロー") . ":<br>\n";
echo 'mb_strstr($str2, "ヘロー"):' . mb_strstr($str2, "ヘロー") . ":<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_05_08.php<br>
【PHP】マルチバイト関数:mb_strstr<br>
文字列:Hello World, Hello, Mary, Did you receive the message?<br>
strstr($str1, "ll"):llo World, Hello, Mary, Did you receive the message?:<br>
mb_strstr($str1, "ll"):llo World, Hello, Mary, Did you receive the message?:<br>
strstr($str1, "Mary"):Mary, Did you receive the message?:<br>
mb_strstr($str1, "Mary"):Mary, Did you receive the message?:<br>
strstr($str1, "ll"):He:<br>
mb_strstr($str1, "ll"):He:<br>
strstr($str1, "Hallo")::<br>
mb_strstr($str1, "Hallo")::<br>
<br>
文字列:ハローワールド、ハロー、Mary、メッセージは届いた?<br>
strstr($str2, "ロー"):ローワールド、ハロー、Mary、メッセージは届いた?:<br>
mb_strstr($str2, "ロー"):ローワールド、ハロー、Mary、メッセージは届いた?:<br>
strstr($str2, "Mary"):Mary、メッセージは届いた?:<br>
mb_strstr($str2, "Mary"):Mary、メッセージは届いた?:<br>
strstr($str2, "ロー"):ハ:<br>
mb_strstr($str2, "ロー"):ハ:<br>
strstr($str2, "ヘロー")::<br>
mb_strstr($str2, "ヘロー")::<br>
コメント