mpdfで「The /e modifier is …」エラー発生時の対応方法
2026/07/14
pdf関連のPHPライブラリ「mPDF」を使っているページがエラーログにのっており「PHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in」というエラー内容だった。以下に対応方法をメモ。
エラー原因
preg_replace()のe修飾子はPHP5.5.0から非推奨になり、エラーが表示されるらしい。
対応方法
/mpdf/includes/functions.phpの66、67行目を以下の通り書き換える。バージョンによって行数は違うかもしれない。
#以下の部分を、
#$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str);
#$str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str);
#以下の通り書き換える
$str = preg_replace_callback('/\&\#([0-9]+)\;/m', function($m) use ($lo){return code2utf($m[1],$lo); }, $str);
$str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', function($m) use ($lo){return codeHex2utf($m[1],$lo);}, $str);
参考サイト
まとめ
mPDFで「PHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in」エラーが発生する場合はfunctions.phpを編集することで解決する。
関連記事
-
-
HTML / CSSで作成したコンテンツをPDFファイルで出力する方法(TCPDF)
HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mp ...
-
-
TCPDF&FPDIでテンプレートPDFを使用し、複数ページのPDFを作成する方法
TCPDF&FPDIを用いて請求書PDFを発行するシステムがあった。請求 ...
-
-
JavaScriptにて領収書等のテンプレートHTMLページをPDFファイル化させる方法(html2pdf)
JavaScriptにてhtml2pdfというライブラリを使用することでHTML ...
-
-
TCPDFに任意の日本語フォント(Noto Sans JP)を追加する方法
TCPDFはデフォルトで6つの日本語フォントが用意されているっぽいが、それら以外 ...
-
-
TCPDF「Could not include font definition」エラーの対処方法
TCPDFでフォントを「arialunicid0」に指定したところ「TCPDF ...