Parsing 从用户输入解析命令

Parsing 从用户输入解析命令,parsing,user-input,Parsing,User Input,这个问题旨在讨论人们在处理用户输入时的个人意见 我正在处理的这部分项目以类似于IRC聊天的方式处理用户输入。例如,有set命令等等,用于聊天、执行动作等 现在,我可以选择几个选项来解析这个输入。我可以使用正则表达式,我可以直接解析它(即一个包含所有支持命令的大型switch语句,只需检查用户输入中的前x个字符),或者甚至可以疯狂地添加一个类似于Flex/Bison实现的解析器。我考虑的另一个选择是在XML文件中定义所有命令,将它们与代码实现分离 那么,社区的想法是什么呢?我会带上一个很好的混合包

这个问题旨在讨论人们在处理用户输入时的个人意见

我正在处理的这部分项目以类似于IRC聊天的方式处理用户输入。例如,有set命令等等,用于聊天、执行动作等

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


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

我会带上一个很好的混合包

显然,您必须清理输入。确保那里没有令人讨厌的东西,这取决于输入将在哪里阻止SQL注入、XSS、CSRF等

但是,当您的输入是干净的时,您可以使用一个regexp,它捕获作为命令的内容,并获取所有必要的子匹配(命令参数等),然后使用某种dispatcher switch语句或类似语句

这里真的没有涵盖所有的最佳实践,除了始终和四倍始终确保用户输入被消毒。除此之外,选择最适合你的方案


显然,有些人会说,如果你遇到了问题,并且你正在考虑使用reg EXP来解决这个问题,你会遇到两个问题,但是谨慎使用,它们是有史以来最好的东西。请记住,regexp怪兽的可读性非常差,速度非常快。

我会选择一个很好的混合包

显然,您必须清理输入。确保那里没有令人讨厌的东西,这取决于输入将在哪里阻止SQL注入、XSS、CSRF等

但是,当您的输入是干净的时,您可以使用一个regexp,它捕获作为命令的内容,并获取所有必要的子匹配(命令参数等),然后使用某种dispatcher switch语句或类似语句

这里真的没有涵盖所有的最佳实践,除了始终和四倍始终确保用户输入被消毒。除此之外,选择最适合你的方案


显然,有些人会说,如果你遇到了问题,并且你正在考虑使用reg EXP来解决这个问题,你会遇到两个问题,但是谨慎使用,它们是有史以来最好的东西。请记住,regexp怪兽可以很快阅读到非常糟糕的可读性。

本网站旨在鼓励提供良好、客观的答案。我怀疑,将你的问题表述为对个人观点的明确讨论,结果会很糟糕。我建议将其改为“最佳用户输入实践-php”或更具体、更客观的内容。谢谢,我已经相应地对其进行了更新。本网站旨在鼓励提供良好、客观的答案。我怀疑,将你的问题表述为对个人观点的明确讨论,结果会很糟糕。我建议将其改为“最佳用户输入实践-php”或更具体、更客观的可测量内容。谢谢,我已经相应地对其进行了更新。