勉強したことのメモ

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

PHPでeval実行時に「eval()'d code on line」エラー

   2024/01/26  PHP

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でエラーメッセージを見やすくするwhoopsの利用方法
PHPでエラーメッセージを見やすくするwhoopsの利用方法

PHPのエラーメッセージが見づらい。これはこういうもの、と諦めていたがCodei ...

PhpSpreadsheetでセル内の文字列の改行、セル幅の自動調整を行う方法
PhpSpreadsheetでセル内の文字列の改行、セル幅の自動調整を行う方法

以前PHPとPhpSpreadsheetを用いてExcelシートを出力する方法を ...

PHPで指定したディレクトリ内のファイル名を取得し、更新日時順でJSON形式にて出力する方法
PHPで指定したディレクトリ内のファイル名を取得し、更新日時順でJSON形式にて出力する方法

先日summernoteに対してギャラリー画像挿入機能を追加する方法をメモしたが ...

PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法
PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法

迷惑メール対策等でメール本文が日本語のもののみ受信したい場合がある。ただ、本文内 ...

PHPからLINEのMessaging APIにリクエストし通知を送る方法
PHPからLINEのMessaging APIにリクエストし通知を送る方法

LINEから「2025/3/31にLINE Notifyのサービスが終了する」と ...