勉強したことのメモ.

Webエンジニア / プログラマが勉強したことのメモ。

mpdfで「The /e modifier is …」エラー発生時の対応方法

   2026/07/14  PHP

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);

 

参考サイト

https://stackoverflow.com/questions/29432453/mpdf-error-preg-replace-the-e-modifier-is-deprecated-use-preg-replace-cal

 

まとめ

mPDFで「PHP Deprecated:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in」エラーが発生する場合はfunctions.phpを編集することで解決する。

 - PHP

  関連記事

PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法
PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法

セキュリティ等の問題によりaタグで直接リンクさせたくない、もしくはドキュメントル ...

TCPDF&FPDIでテンプレートPDFを使用し、複数ページのPDFを作成する方法
TCPDF&FPDIでテンプレートPDFを使用し、複数ページのPDFを作成する方法

TCPDF&FPDIを用いて請求書PDFを発行するシステムがあった。請求 ...

PHPでパスワード付きのZIP / PDFファイルを作成する方法
PHPでパスワード付きのZIP / PDFファイルを作成する方法

PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何 ...

PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)
PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)

以前、PHPのTCPDF&FPDIを用いてテンプレートPDFに対し、動的 ...

JavaScriptにて領収書等のテンプレートHTMLページをPDFファイル化させる方法(html2pdf)
JavaScriptにて領収書等のテンプレートHTMLページをPDFファイル化させる方法(html2pdf)

JavaScriptにてhtml2pdfというライブラリを使用することでHTML ...