开发者社区> 问答> 正文

php中的dirname等函数无法处理中文路径的问题,求助。

当文件的路径中含有中文的时候,使用dirname等函数进行处理的时候,会得到不正常的结果
screenshot
上述代码执行的结果 string(10) "D:aaabbb"

执行环境:
Server:Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8t PHP/5.4.12
X-Powered-By:PHP/5.4.12

windows7 chrome 32.0.1700.107 m

展开
收起
落地花开啦 2016-06-16 18:02:58 2509 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    这是 PHP 的问题。PHP 在 Windows 上使用如下定义:

    #define IS_SLASH_P(c)   (*(c) == '/' || \
            (*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))

    即,如果一个字符是 /,或者它是 同时它前边那个字符小于 0x80,那么才算是路径分隔符。
    screenshot
    IS_SLASH_P 位于 TSRM/tsrm_virtual_cwd.文件,php_dirname位于 ext/standard/string.c:1518,zend_dirname` 中相关代码位于 Zend/zend_compile.c:7184。

    2019-07-17 19:41:41
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载