PHPExcelを使おうとしていますが、最も基本的なことでも、どこかからコピーされたスクリプト(http://blog.clock.co.uk/phpexcel-example/)でもエラーが発生します。
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/.../public_html/pear/PEAR/PHPExcel/PHPExcel/Calculation.php</b> on line <b>1685</b><br />
出力されたファイルには、これがファイルの一番上にあり、Excel(またはOpen Office)は有効なファイルではないと言います。これらの2行を削除すると、すべてが正常になり、Excel(またはOO)で問題なく開くことができ、スクリプトが実行するすべてがそこにあります。
Calculation.php行1685:
foreach (glob($localeFileDirectory.'/*',GLOB_ONLYDIR) as $filename) {
そしてそれが含まれている機能:
private function __construct() {
$localeFileDirectory = PHPEXCEL_ROOT.'PHPExcel/locale/';
foreach (glob($localeFileDirectory.'/*',GLOB_ONLYDIR) as $filename) {
$filename = substr($filename,strlen($localeFileDirectory)+1);
if ($filename != 'en') {
self::$_validLocaleLanguages[] = $filename;
}
}
$setPrecision = (PHP_INT_SIZE == 4) ? 12 : 16;
$this->_savedPrecision = ini_get('precision');
if ($this->_savedPrecision < $setPrecision) {
ini_set('precision',$setPrecision);
}
} // function __construct()
PEAR経由でPHPExcelをインストールしました。
PHPExcelのセットアップのどこにも「ロケール」ディレクトリが表示されなかったので、作成してみましたが、それでも同じ問題が発生します。
ロケール機能を設定または使用していません。