2009-04-23 127 views
1

此问题旨在讨论人们在处理用户输入时的个人意见。解析来自用户输入的命令

我正在处理的这部分项目以类似于IRC聊天的方式处理用户输入。例如,有一组命令和诸如此类的东西,适合聊天,执行动作等

现在,我有几种选择从解析此输入选择。我可以使用正则表达式,我可以直接解析它(例如,包含所有支持的命令的大型开关语句,只需检查用户输入中的第一个x个字符),或者甚至可能发疯,并添加类似于Flex的解析器/ Bison实现。我正在考虑的另一个选项是定义XML文件中的所有命令以将它们与代码实现分开。

那么,社区的想法是什么?

+0

这个网站的目的是鼓励良好的,客观的答案。我怀疑措辞你的问题是一个明确的讨论有关的个人意见会变成不良。我建议它改写到,“最佳用户输入惯例 - PHP”或更具体的东西和客观衡量。 – 2009-04-23 15:48:53

回答

1

我会带着一个不错的混合包。

显然你必须清理输入。确保有没有讨厌的东西,取决于输入要防止SQL注入,XSS,CSRF等的位置...

但是,当您的输入是干净的,你可以去一个正则表达式,命令并获取所有必要的子匹配(命令参数等),然后获得某种调度程序切换语句或类似内容。

真的是没有盖的所有最佳实践在这里,除了总是总是和四人间,始终确保用户输入消毒。除此之外,请选择最适合您的案例。

很明显,有些人说如果你有问题,并且你正在考虑使用reg exps来解决这个问题,你有两个问题,但是谨慎使用,他们是有史以来最好的。请记住,正则表达式怪物可以读得非常快,可读性很差。