找出以字节为单位的发布数据大小

时间:2010-05-27 13:01:43

标签: php javascript

当我在php中提交表单时。 我想找到通过javascript以字节为单位发布的每个文本框的数据大小。

3 个答案:

答案 0 :(得分:0)

无论用户提交的方式或javascript函数如何,您将获得的数据都带有“name”标签。 在PHP代码中,您只需获取发布的数据并检查其大小。

答案 1 :(得分:0)

来自webmasterworld.com

用户 gliff 说:

  

一切都取决于角色   编码。一个ASCII字符需要   一个字节来存储。但是,如果你是   处理多字节字符串和/或   Unicode,一个字符没有   必须对应一个字节。

     

我/希望有一个内置的   功能我忽略了这一点   自动将所有内容融入其中   帐户并神奇地吐出一个   数。的

我认为最好粘贴到这里并且信用包装页面不再存在。


获得类型后,内置函数将类似于:

mb_strlen($utf8_string, 'latin1');

答案 2 :(得分:0)

有两种选择。对于字节数,请使用strlen:

$boxlen = strlen($_POST['field']);

对于字符长度,如果安装了mb_string:

$boxlen = mb_strlen($_POST['field']);

请注意,如果您启用了MBString function overloading,则strlen()将不准确。检查:

$mask = ini_get('mbstring.func_overload');
if (($mask & 2) === 2) {
    //strlen is overloaded
}

如果它过载,并且你想要一个字节数,你将不得不做一些有点混乱的事情。在我的脑海中,我能想到的最“准确”的方式就是:

function getByteCount($str) {
    $mask = ini_get('mbstring.func_overload');
    if (($mask & 2) === 2) {
        //strlen is overloaded
        return mb_strlen($str, 'latin1');
    } else {
        return strlen($str);
    }
}

注意:只有在mb_string覆盖mb_strlen()时才需要strlen()方法。否则,它将在字节长度上正常工作。

编辑:在位比较周围添加()(由于操作符顺序需要)。