[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>