[PHP-users 33586] リモートWin共有ディレクトリの中身をphpで判別したい

Tatsuya Matsuyama tatsuya @ kk-okamoto.jp
2008年 6月 10日 (火) 10:40:25 JST


松山と申します。
RedHatLinuxES+php-4.3.2-43.entを使用しています。

phpでイントラ環境限定のWebアプリを作り会社内で使ってきました。
このアプリの機能の中に、ディレクトリの有無、ファイルの中の有無を調べたり、
ディクトリの中にあるjpgファイルを表示する機能がありました。
# クライアントは全てWindowsです。

これまでは、
このLinmuxサーバー上のローカルのディレクトリを
Sambaを使って公開し、同時にphpでファイルの有無を
下記のようなコードで判別してきました。

// ディレクトリ内のファイルの有無の判定
if(@opendir('/mnt/$FileServer_kouji_shasin/kouji_shasin/'.$nendo_year[$i].'/
'.$kouji_id[$i].'/'.$kinkyu_id[$i]))
{
	// 対象ディレクトリがある場合のみ

$handle=opendir('/mnt/$FileServer_kouji_shasin/kouji_shasin/'.$nendo_year[$i
].'/'.$kouji_id[$i].'/'.$kinkyu_id[$i]);
		while (false !== ($file_name = readdir($handle))) {
			if ($file_name != "." && $file_name != "..") {
				$film_gif[$i] = $film_ari;
				break;
			}
		}
		closedir($handle);
	} else {
		// ディレクトリがない場合
		$film_gif[$i] = $film_nashi;
	}

	if(!isset($film_gif[$i]))
	{
		// 中身の無film_gif
		$film_gif[$i] = $film;
	}
}

ところが、このファイルの容量が大きくなるにつれ
Linuxでの運用が困難となってきました。
そこで、
別にあるWindwos2000serverにUSBの外付けHDをつけて、
保守・管理を行おうと思い立ちテストしています。

Linuxのmountコマンドで
/mnt以下にWindwosサーバーの公開フォルダをマウントし、
同じコードでディレクトリ・ファイルの有無を判定しようとしたところ
正常に判定されず、全て「存在しない」よう判定されます。

どうも、
リモートサーバーにあるファイルの存在判定が仕様上できないようですが、
何か良い方法はないでしょうか?

Windows2000serverでIISやFTPサーバーを立ち上げれば、
別の方法があるかもしれませんが、
このサーバーにはそのようなサーバーを追加する予定はありません。
# でも、無理かなぁ...





PHP-users メーリングリストの案内