PHP - 可以计算每个字符的击键次数

时间:2012-01-31 14:49:17

标签: php

是否有某种功能可以计算键入特定字符需要多少次击键?

例如,在法语中,字符Ÿ需要键入3次击键。现在我只是针对数组检查每个字符并添加相关值,对于Ÿ它将是3。

PHP中是否有某种方法可以自动执行此操作,还是必须坚持使用数组方法?

5 个答案:

答案 0 :(得分:2)

不可能。 PHP是服务器端,不知道用户(客户端)的键盘布局。

德国人(使用键盘布局)可以使用我认为的一个键ü。但我甚至不知道如何打字。

因此可以安全地说:some char !== specific number of keystrokes

答案 1 :(得分:2)

不可能自动执行此操作,因为PHP是服务器端脚本,无法查看用户的键盘布局,也无法检测何时按下某个键。因此,您唯一的解决方案是使用我认为不存在的库。

您需要继续创建自己的击键库(数组)。但是,如果集成了一个临时的javascript脚本,则可以更快地完成这项工作。

列出您想要的所有字符(在纸上或计算机上,无所谓),然后将它们输入到使用javascript获取您的击键的网页中。然后使用javascript将这些添加到一个数组中,您可以将其复制并粘贴到PHP中。

非常简单,可以为您节省大量时间

如果您需要JS的帮助,请告诉我

<强>更新

这可以帮助您使用Windows和Mac,每个操作系统和键盘布局都需要一个单独的阵列(使用javascript检测键盘布局)。

http://www.nouilles.info/keyboard_shortcuts.html

更新2

您需要做的是应用条件来确定要使用的数组。

像这样设置数组:

$keystrokes = array(
     'mac'=>array(     // For mac users
          'english-us'=>array(
               'character'=>3
          )
     ),
     'windows'=>array(     // For windows users
          'english-uk'=>array(
               'character'=>2
          )
     )
);

然后为未知布局或操作系统设置默认设置。我建议将Windows english-us设置为默认设置,因为这是世界上最常用的设备。

请注意:没有办法让这100%准确,因为有太多不同的操作系统和键盘布局,覆盖所有可能的组合是非常耗时的。您可能想问自己这个功能是否绝对必要,因为它似乎非常不可靠。

答案 2 :(得分:1)

不,完全不可能自动完成。那里没有可以为你做的PHP库。

例如,我现在正在Ubuntu上打字。在Windows上,我会使用Alt + 0233键入具有锐音的e。现在我只是复制并粘贴它。我可以用上下文菜单做到这一点。没有按键。根据您的目的,这可以是:

  1. 在PHP或
  2. 中完全不可能
  3. 绝对没有内置的东西。

答案 3 :(得分:0)

在JavaScript的帮助下完成此操作是完全可能的,但需要付出一些努力。但您可能希望在JavaScript中完成所有操作。首先,由detecting the keyboard layouts language开始。然后将检测到的语言与AJAX或类似的(alternatively save to a cookie)一起发送到PHP脚本,该脚本以某种方式保存(会话,数据库等)布局语言。

然后,您可以手动存储数组中每种所需语言所需的击键次数,即:

$keyboard['swedish'] = array(
  'a' => 1,
  'b' => 1,
  'ü' => 2
);

在计算角色所需的击键次数时,你可以这样做:

$keystrokesNeeded = $keyboard[$user['keyboardLayout']]['ü']; //If layout is swedish, it'd return 2

如上所述,需要一些努力 - 但它确实能够。

答案 4 :(得分:-1)

这取决于哪个键盘。有些键盘会有快捷键。你可能必须自己写,这不是一件难事。拿一些常用的键盘搞清楚。