それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

is_readableだけがFalseを返す

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が一般的になったらもっと再発するのだろうか・・・