PHPでeval実行時に「eval()'d code on line」エラー
2024/01/26
PHPでeval実行時に「eval()'d code on line 〇〇」というエラーが発生した。他所のシステムでPHP形式の配列を書いて、それをfile_get_contentsで持ってきてevalで実行してたんだけどどうも中で構文エラーが発生しているっぽい。また他所のシステム内では毎回データが変わるので、エラーが発生する場合としない場合があり。
何とかして発生時だけfile_get_contentsの中身をエラーログに吐き出したいと悩んだ結果、よく考えるとwarningエラーなのでプログラムは止まらないため普通に書いたらよかった。
$file = file_get_contents("./aaa.html");
eval($file); //$fileの中では$aaaという配列を定義してたとする
if (!$aaa) { //evalでエラーが発生していた場合、$aaaは定義されないのでfalseになる
//エラー処理
}
try~catchではうまいこといなかったので注意する。
関連記事
-
-
PHPで作成したプログラムをcron設定し自動実行する方法
cronの設定方法。サーバー側での設定とPHP側での書き方を以下にメモ。 &nb ...
-
-
formのinput="file"でディレクトリを選択させ、ディレクトリ内のファイルを全てアップロードする方法
フォームで複数のファイルをアップロードしたい場合、input="file"を複数 ...
-
-
PHPでURLを解析してクエリ(GETパラメータ)を抽出する方法
formからGETで送信したクエリ(パラメータ)を、受信した側で抽出し、キーと値 ...
-
-
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...
-
-
CodeIgniter4でGET / POSTパラメータの受け取りとルーティング設定方法
CodeIgniter4.4.4でページを開いた際にGET / POSTパラメー ...