前提・実現したいこと
始めまして
PHPテンプレートエンジンSkinnyを使って制作を始めたのですが
PHP Version 7.3.x 以降では
テンプレートで
if~elseif~else~/if の組み合わせ処理を行うと
eval の処理でエラーが表示されるようです。
それを回避したいのですが
修正部分をご教示頂けませんでしょうか。
発生している問題・エラーメッセージ
Notice: Undefined index: template_xxx in C:\xampp\htdocs\xxxxxxxxxxx.com\pl\Skinny.php(1250) : eval()'d code on line 61
該当のソースコード
php
1/** 2 * Skinnyでスキン内のタグをPHPに置換し、実行後のHTMLを表示する 3 * 4 * @param tpl string スキンファイル 5 * @param param array スキンに展開する変数(配列) 6 * @param tplcode string スキン内容コード(指定された場合はtplより優先で使用) 7 */ 8 public function SkinnyDisplay( $tpl = null, $param = null, $tplcode = null ) { 9 $code = $this->_skReplacedCode( $tpl, $param, $tplcode ); 10 @ob_end_clean(); 11 @ob_start(); 12 eval( "?>" . $code ); 13 $html = ob_get_contents(); 14 @ob_end_clean(); 15 if ( $this->skConf['ENCODE']['FLG'] && ($this->skConf['ENCODE']['INTERNAL'] != $this->skConf['ENCODE']['EXTERNAL']) ) { 16 $html = mb_convert_encoding( $html, $this->skConf['ENCODE']['EXTERNAL'], $this->skConf['ENCODE']['INTERNAL'] ); 17 # $html .= $this->skConf['ENCODE']['INTERNAL']. " -> " . $this->skConf['ENCODE']['EXTERNAL']. "<BR />"; 18 # header("Content-Type: text/html; charset:".$this->skConf['ENCODE']['EXTERNAL']); 19 } 20 21 /* 22 if ( $this->skConf['SKINNY']['AUTOEXEC'] ) { 23 _autoPrependFuncion(); 24 } 25 */ 26 27 echo $html . $this->_skBenchMarkTime(); 28 }
補足情報(FW/ツールのバージョンなど)
Skinny ver 0.4.4
PHP Version 7.3.11