[PHP-users 7029] Re: 5Cを含むデレクトリへのアクセス
Rui Hirokawa
php-users@php.gr.jp
Mon, 22 Apr 2002 00:25:37 +0900
廣川です。
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>