is_readableだけがFalseを返す
Samba経由でファイルを読み込みに行ったらエラーになる。
PHPをWindowsで実行していて、Sambaでファイルを読み込みに行ったらエラーになった。
<?php $dir_name = "X:/takuya/docs/sample.txt"; #Sambaのディレクトリ file_get_contents($dir_name); #=> ok file_exists($dir_name); #=> ok is_readable($dir_name); #=> false ←えっ! ?>
is_readableを積極利用しているPHPExcel
PHPExcelのモジュールがis_readableをチェックする親切設計のために、気づくのに時間がかかった。
YAGNIをはじめ、お節介さんは本当に不要ですよね。
<?php /** PHPExcel root directory */ if (!defined('PHPEXCEL_ROOT')) { define('PHPEXCEL_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR); require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); PHPExcel_Autoloader::Register(); PHPExcel_Shared_ZipStreamWrapper::register(); // check mbstring.func_overload if (ini_get('mbstring.func_overload') & 2) { throw new Exception('Multibyte function overloading in PHP must be disabled for string functions (2).'); } }
困った子です。
今後SPL/Autoloadが一般的になったらもっと再発するのだろうか・・・