在Perl CGI中处理HTML表单中的PHP样式数组(方括号)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Perl CGI中处理HTML表单中的PHP样式数组(方括号)相关的知识,希望对你有一定的参考价值。

This is inspired by this http://www.cgi101.com/book/ch5/text.html so I'm using a similar example. In php you can combine a set of checkboxes into an array using square brackets like this:


Red
Green
Blue
Gold



PHP does not do this automatically but it's pretty simple to do if you filter by regular expressions.
  1. use CGI;
  2.  
  3. $query = CGI::new();
  4.  
  5. my %fields_temp = $query->Vars;
  6. my %fields = ();
  7.  
  8. foreach my $key (keys %fields_temp) {
  9. if ( $key =~ /(.+)[]$/ ) { ## Handle PHP style array inputs
  10. if(exists $fields{$1}){
  11. $fields{$1} = $fields{$1} . ",". $fields_temp{$key};
  12. }
  13. else{
  14. $fields{$1} = $fields_temp{$key};
  15. }
  16. }
  17. else {
  18. $fields{$key} = $fields_temp{$key};
  19. }
  20. }
  21.  
  22. foreach my $key (sort keys %fields) {
  23. unless ($key =~ /(.+)[]$/ ){
  24. push(@keys, $key);
  25. push(@values, $fields{$key});
  26. }
  27. }

以上是关于在Perl CGI中处理HTML表单中的PHP样式数组(方括号)的主要内容,如果未能解决你的问题,请参考以下文章

HTML 表单操作最终下载 perl 文件而不是执行它

php基础

PHP (超文本预处理器)

Perl CGI 日期和时间选择器,自动填充当前日期和时间

Servlet 与 CGI 的比较

Servlet 与 CGI 的比较