[PHP-users 7044] Re: 5Cを含むデレクトリへのアクセス
木村将行
php-users@php.gr.jp
Mon, 22 Apr 2002 15:21:38 +0900
ありがとうございます。
当方、コンパイル環境が無いので、どうしよう・・
と思っていましたら、http://www.geocities.jp/rui_hirokawa/php/
に修正版がありました。
対応、ありがとうございます。
早速、インストールして mbstring.internal_encoding = SJIS
に設定したところ、is_dir()は問題なく動作したのですが、opendir()
がうまく動作していないようです。
表示 OK
表 NG
パスの最後に5Cがあるとうまく動作しないみたいです。
これもis_dir()と同じ原因なのでしょうか?
>廣川です。
>
>is_dir()の動作について調べたところ、
>TSRMのコードでパス区切りを切り出す際に漢字の2バイト目の\
>をパス区切りを混同してしまい、うまくSJISで書かれたパスを
>切り出せていないようでした。
>
>TSRMに以下のようなパッチをあて、_MBCSを定義してコンパイルすることにより、
>2バイト目に \ があってもis_dir()が正常に動作するようになりました。
>
>
>*** TSRM/tsrm_virtual_cwd.c.orig Mon Apr 22 00:18:10 2002
>--- TSRM/tsrm_virtual_cwd.c Mon Apr 22 00:18:39 2002
>***************
>*** 68,74 ****
> #endif
>
> #ifdef TSRM_WIN32
>! #define tsrm_strtok_r(a,b,c) strtok((a),(b))
> #define TOKENIZER_STRING "/\\"
>
> static int php_check_dots(const char *element, int n)
>--- 68,75 ----
> #endif
>
> #ifdef TSRM_WIN32
>! #include <tchar.h>
>! #define tsrm_strtok_r(a,b,c) _tcstok((a),(b))
> #define TOKENIZER_STRING "/\\"
>
> static int php_check_dots(const char *element, int n)
>
>
>
>
>On Thu, 18 Apr 2002 12:23:46 +0900
>木村将行 <mkim@jp.fujitsu.com> wrote:
>
>> はじめまして、いつもMLにはお世話になっています。
>>
>> まず環境ですが
>> Windows2000+IIS5+PHP4.1.2
>> です。
>> この環境で、is_dir、file_exists(他にもあるかも)を使用した場合、
>> 5C(\)のコードを含むディレクトリ(表示とか機能などなど)へのアクセス
>> が出来ません。
>> 表\示などいろいろやってみたのですが、どうもうまく行きません。
>> 困り果ててます。(;_;)
>> 皆様のお知恵、宜しくお願いします。
>> --
>
>--
>-----------------------------------------------------
>Rui Hirokawa <rui_hirokawa@ybb.ne.jp>
> <hirokawa@php.net>
>
--
木村将行 <mkim@jp.fujitsu.com>