遭遇windows上PHP 不能打开GBK编码文件名的问题

我在 目录下建了一个文件名为 謀定三國-i8ujlw.json

 

然后在其下建了一个demo.php文件,内容如下:

<?php
function recursion_glob($dir, $pattern)
{
    $dir = rtrim($dir, '/\\') . DIRECTORY_SEPARATOR;
    $files = array();

    $dh = opendir($dir);
    if (!$dh) return $files;

    $items = (array)glob($dir . $pattern);
    foreach ($items as $item)
    {
        if (is_file($item)) $files[] = $item;
    }

    while (($file = readdir($dh)))
    {
        if ($file == '.' || $file == '..') continue;

        $path = $dir . $file;
        if (is_dir($path))
        {
            $files = array_merge($files, recursion_glob($path, $pattern));
        }
    }
    closedir($dh);
    return $files;
}

$files = recursion_glob(__DIR__, '*.json'); 
if ( !empty($files) )
{
	foreach ( $files as $file )
	{
		if(!is_readable($file))
		{
			print "cannot find: ($file)\n";
		}
        else
        {
            print "load file: ($file)\n";   
        }
	}
}

?>			

 

 

打开windows cmd控制台,输入 php demo.php

C:\tmp\md>php demo.php
load file: (C:\tmp\md\谋定三国-i8ujlw.json)
cannot find: (C:\tmp\md\謀定三國-i8ujlw.json)

 

打印出来的结果是不是很坑爹

 

 

PHP Version 5.5.1

 

SystemWindows NT WIN-290JCDFNA40 6.2 build 9200 (Windows 8 Business Edition) i586
Build DateJul 18 2013 10:37:55
CompilerMSVC11 (Visual C++ 2012)
Architecturex86
Configure Commandcscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--disable-static-analyze" "--with-pgo"
Server APICGI/FastCGI
Virtual Directory Supportdisabled
Configuration File (php.ini) PathC:\Windows
Loaded Configuration FileC:\soft\upupw\PHP5\php.ini
Scan this dir for additional .ini files(none)
Additional .ini files parsed(none)
PHP API20121113
PHP Extension20121212
Zend Extension220121212
Zend Extension BuildAPI220121212,NTS,VC11
PHP Extension BuildAPI20121212,NTS,VC11
Debug Buildno
Thread Safetydisabled
Zend Signal Handlingdisabled
Zend Memory Managerenabled
Zend Multibyte Supportprovided by mbstring
IPv6 Supportenabled
DTrace Supportdisabled
Registered PHP Streamsphp, file, glob, data, http, ftp, zip, compress.zlib, compress.bzip2, https, ftps, phar
Registered Stream Socket Transportstcp, udp, ssl, sslv3, sslv2, tls
Registered Stream Filtersconvert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*, bzip2.*

 

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值