小编Hon*_*hař的帖子

PHP x86如何在没有外部程序的情况下获取> 2 GB文件的文件大小?

我需要获得大小超过2 GB的文件的文件大小.(在4.6 GB文件上测试).没有外部程序有没有办法做到这一点?

当前状态:

  • filesize(),stat()fseek()失败
  • fread()feof()工作

通过读取文件内容可以获得文件大小(非常慢!).

$size = (float) 0;
$chunksize = 1024 * 1024;
while (!feof($fp)) {
    fread($fp, $chunksize);
    $size += (float) $chunksize;
}
return $size;
Run Code Online (Sandbox Code Playgroud)

我知道如何在64位平台上使用它(使用fseek($fp, 0, SEEK_END)ftell()),但我需要32位平台的解决方案.


解决方案:我已经为此启动了开源项目.

大文件工具

Big File Tools是在PHP中操作超过2 GB的文件所需的hacks集合(即使在32位系统上).

php file-io x86 filesize large-files

24
推荐指数
2
解决办法
2万
查看次数

js:如何在按键上获得LOCALIZED字符?

我需要在按键事件上获得本地化字符.例如:在捷克键盘上我需要得到不是5个字符(键码53)(参见捷克键盘布局).有没有其他方法来获得角色,不使用文本输入和阅读价值?换句话说,有什么方法可以从事件对象中获取关于当前用户键盘布局的字符?


(添加示例代码)

<html>
<body>
<script language="JavaScript">
function onLoad() {
    console.log(document.getElementById("test"));
    document.getElementById("test").onkeydown = function(event) {
                console.log("Code: "+event.keyCode+"; Key: "+String.fromCharCode(event.keyCode));
        }
}
</script>
<body onLoad="onLoad();">
    <input id="test">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

(在线示例)

当您尝试此代码并按下ř-key时,您将在Firebug控制台中看到"代码:53;密钥:5".我需要得到"ř"而不是"5".

我认为这个"问题"出现在所有非英语键盘上.

javascript localization keypress javascript-events keyboard-layout

8
推荐指数
1
解决办法
9587
查看次数