PHP のバージョンを 5.1.x から 5.4.14 にアップグレードしました。このバージョンでは、PHPExcelReader を使用した Excel ファイルの読み取りが次の警告で失敗します。以前のバージョンでは、正常に動作していました。
ファイル名 images_db/TempCountry.xlsx を読み取ることができません
デモ用のサンプルコードは以下の通りです( ですTemp.php
)。
<?php
require_once 'phpExcelReader/Excel/reader.php';
if(isset($_POST['btnSubmit']))
{
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251'); // Set output Encoding.
move_uploaded_file($_FILES["xlfile"]["tmp_name"],"images_db/".$_FILES["xlfile"]["name"]);
$data->read('images_db/'.$_FILES["xlfile"]["name"]);
}
?>
<form action="Temp.php" id="dataForm" name="dataForm" method="post" enctype="multipart/form-data">
<input type="file" id="xlfile" name="xlfile">
<input type="submit" value="Submit" id="btnSubmit" name="btnSubmit">
</form>
指定された送信ボタンが押されると、最初に Excel ファイルがimages_db/
ディレクトリにアップロードされ、次の行の場所で成功します。
$data->read('images_db/'.$_FILES["xlfile"]["name"]);
このファイルを読み取ることが期待されていますが、上記の警告が表示されます。
reader.php
ファイル内の次の行、
$this->_ole =& new OLERead();
に変更されました
$this->_ole = new OLERead();
次の警告を回避します。
非推奨: 参照による new の戻り値の割り当ては、C:\wamp\www\wagafashion\phpExcelReader\Excel\reader.php の 261 行目で廃止されました。
この新しいバージョンの PHP で、Excel ファイル (xls も xlsx も) が PHPExcelReader によって読み取られないのはなぜですか? バージョンと何か関係がありますか?