[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 メーリングリストの案内