[PHP-users 7044] Re: 5Cを含むデレクトリへのアクセス

木村将行 php-users@php.gr.jp
2002年4月22日 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 2002年4月18日 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>

AltStyle によって変換されたページ (->オリジナル) /