前提・実現したいこと
正規表現を使って文字列のマッチングの判定がしたいです。
具体的にはユーザが選択したファイルの拡張子がpdfかどうかの判定がしたいです。
現状、preg_match関数を使用して判定はできていますが、mb_eregを使用した際に意図した結果が返ってきていません。
その原因が分からず、ご教授いただきたいです。
発生している問題・エラーメッセージ
下記コードの実行結果が「false」になります。
var_dump(mb_ereg('/pdf/', 'test.pdf'));
ためしにmb_eregではなくpreg_matchを使用した場合、意図したとおり「1」が返ってきました。
var_dump(preg_match('/pdf/', 'test.pdf'));
PHPのリファレンスを見ても私には違いが分からず、なぜmb_eregではtrueが返ってこないのかモヤモヤしています。
試したこと
正規表現用のエンコードが「UTF-8」ではないといけないというサイトがあったので下記コードで確認してみましたが「UTF-8」が返ってきました。
var_dump(mb_regex_encoding());
補足情報(FW/ツールのバージョンなど)
Windows10
XAMPP3.2.4
PHP8.0.1
apache2.4.46
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/21 06:59
2021/08/21 07:13 編集
2021/08/21 08:51