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でキーや値は保持したまま順番を入れ替える
PHPで連想配列のキーや値は保持したまま順番をランダムに入れ替えたかった。一発で ...
-
-
PHPで配列データをCSVとしてダウンロードさせる方法
PHPでログ的なデータをCSV化したかった。ただ、複数の人間が使うのでCSVファ ...
-
-
PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法
迷惑メール対策等でメール本文が日本語のもののみ受信したい場合がある。ただ、本文内 ...
-
-
PHPでお問い合わせ等のform構築時にCSRF対策を行う方法
他社が制作されたお問い合わせフォームを改修する案件があった。ソースコードを拝見し ...
-
-
PHPとGoogle Authenticatorの組み合わせで2段階認証を実装する方法
2段階認証と言えばSMS送信のケースが多く、その次に通常のメール送信というケース ...