[PHP-users 33667] Re: リモートWin共有ディレクトリの中身をphpで判別したい
kenrouse @ gmail.com
kenrouse @ gmail.com
2008年 6月 17日 (火) 20:25:58 JST
kenrouse と申します。
Redhat EL 4 をお使いのようですね。
> mount -t smbfs -o username=administrator,password=xxxxx,codepage=cp932
> //win2k3/kouji_kanri /mnt/kouji_kanri/
mout -t smbfs ...
としているところを、
mount -t cifs
としてみてはどうでしょうか。
options の codepage の指定は不要ですので、
mount -t cifs -o username=administrator,password=xxxxx
//win2k3/kouji_kanri /mnt/kouji_kanri/
となるのかな。
2008/6/17 Tatsuya Matsuyama <tatsuya @ kk-okamoto.jp>:
> 松山@自己レスです。
>
>> -----Original Message-----
>> Linuxのmountコマンドで
>> /mnt以下にWindwosサーバーの公開フォルダをマウントし、
>> 同じコードでディレクトリ・ファイルの有無を判定しようとしたところ
>> 正常に判定されず、全て「存在しない」よう判定されます。
>>
>> どうも、
>> リモートサーバーにあるファイルの存在判定が仕様上できないようですが、
>> 何か良い方法はないでしょうか?
>
> その後、正しく設定してみたところ、
> 問題なく、/mnt以下のリモートのWindowsサーバーの共有フォルダの中身を
> 存在判定をphpでできることを確認いたしました。
>
> 但し、全角文字(漢字)が入っているファイルを正しく判定できません。
> Linux側では、以下のようにmountしています。
> mount -t smbfs -o username=administrator,password=xxxxx,codepage=cp932
> //win2k3/kouji_kanri /mnt/kouji_kanri/
>
> codpageにCP932を指定して、マウントしています。
> この時、windowsクライアントからsshでEUCの窓で/mnt/kouji_kanriでlsをとると
> 2004:5e74:5ea6 2006:5e74:5ea6 2008:5e74:5ea6 template
> 2005:5e74:5ea6 2007:5e74:5ea6 Thumbs.db
> と戻ります。
>
> この時、Windowsサーバー側には
> 「2004年度」から「2008年度」という名前のディレクトリがあります。
>
> 5e74は「年」、5ea6は「度」のUTF-16コードです。
> ですので、
> $file = "/mnt/kouji_kanri/".$nendo_year[$i]."年度;
> $file = mb_convert_encoding("$file", "UTF-16");
>
> if(@opendir($file))
> {...
>
>
> とやってみたのですが、@opendir($file)でfalseが返り
> 上手く判定できません。
>
> Php.iniは以下のように設定されています。
> 確認すべき設定などございましたら、
> ご指摘いただけたらと思います。
>
> よろしくお願いします。
PHP-users メーリングリストの案内