KCFinderのPHP7.2以降への対応について

KCFinderという便利で有名なPHP製ファイルマネージャーを使っております。

とても便利なツールなのですが、PHP7.2以降だと画像アップロード時に警告表示、PHP8.0(beta)だと失敗します。(´・ω・`)

原因

原因はeach関数が非推奨(PHP7.2以降)・削除(PHP8.0)されたことです。

PHP7.2 画像アップロード時の警告表示

PHP7.2以降でアップロードしたらこうなります。(´・ω・)

該当箇所修正

修正箇所は画像の通りeach関数が使用されている部分です。

"kcfinder/lib/class_image.php" 119~120行目付近

list($key, $width) = each($image);
list($key, $height) = each($image);

通常の配列の内容を順番に取得する処理になっているみたいなので、下記のように変更しました。

$width = $image[0];
$height = $image[1];

おしまい

若干突貫な印象がありますが、この変更だけでエラーは出なくなり正常に画像をアップロードできるようになりました。

参考サイトによると自前でeach関数を作ったような内容もありますね。

要は動けばいいんです。(過激派

参考サイト

スポンサードリンク