如何在PHP';之类的perl脚本中转储所有查询变量;s打印(美元)?
我有一个从浏览器运行的perl脚本。我正在向它传递查询变量,但查询变量显示为如何在PHP';之类的perl脚本中转储所有查询变量;s打印(美元)?,perl,cgi,Perl,Cgi,我有一个从浏览器运行的perl脚本。我正在向它传递查询变量,但查询变量显示为johndoe%40test%2Ecom而不是johndoe@test.com 我想调试这些变量,看看它们在脚本开头是如何显示的 在PHP中,当访问url时: http://localhost/dump-variables.php?foo=1&bar=2&bis=johndoe%40test%2Ecom PHP脚本将包含以下代码: header('Content-type: text/plain');
johndoe%40test%2Ecom
而不是johndoe@test.com
我想调试这些变量,看看它们在脚本开头是如何显示的
在PHP中,当访问url时:
http://localhost/dump-variables.php?foo=1&bar=2&bis=johndoe%40test%2Ecom
PHP脚本将包含以下代码:
header('Content-type: text/plain');
print_r($_GET);
结果是:
Array
(
[foo] => 1
[bar] => 2
[bis] => johndoe@test.com
)
Perl版本:5.010001
重要提示
我对正在使用的系统没有任何特殊访问权限(root/sudo),因此可能必须通过源代码包含模块…尝试Data::Printer
加上
试试数据::打印机
加上
你已经标记了这个CGI,所以我首先建议 但是如果您打算使用CGI,并且假设使用CGI.pm,那么(从中):
你已经标记了这个CGI,所以我首先建议 但是如果您打算使用CGI,并且假设使用CGI.pm,那么(从中):
$\u GET
来自哪里?在问题中,它显示为如何在PHP中实现任务的示例。我将源代码下载到包含脚本的目录中,并添加了使用打印机
(我尝试了使用DDP
),但默认情况下未安装。我做错了什么?哦。我认为$\u GET是他在PHP中使用的一个变量。@cwd-该模块名为Data::Printer
。不要下载源代码。使用cpan(或者更好的是cpanm)安装它。@jmcneirney-它是一个超全局数组,一个自动填充查询字符串中数据的数组。$\u GET
来自哪里?在问题中,它显示为如何在PHP中实现任务的示例。我将源代码下载到包含脚本的目录中,并添加了使用打印机
(我尝试了使用DDP
),但默认情况下未安装。我做错了什么?哦。我认为$\u GET是他在PHP中使用的一个变量。@cwd-该模块名为Data::Printer
。不要下载源代码。使用cpan(或者更好的是cpanm)安装它。@jmcneirney-它是一个超全局的数组,一个自动填充查询字符串中数据的数组。我将使用CGI
更改为使用CGI::Carp qw(fatalsToBrowser)
现在我得到无法通过包“CGI”找到对象方法“new”在query-vars.pl第6行。
对应于行my$q=CGI->new()代码>@cwd-CGI::Carp是一个模块,用于在使用CGI时向客户端吐出错误消息。据我所知,它不提供任何基本的CGI处理,所以您仍然需要CGI本身。您可以添加CGI::Carp,但不要用它替换CGI。当我尝试添加它时,我刚刚得到一个错误500,没有任何关于错误的帮助:(使用CGI.pm..../script.CGI foo=bar确保脚本上的权限设置正确。如果脚本不可执行,则它将永远无法运行,服务器将准确报告该消息。使用类似于0755
的掩码使用chmod
。我将使用CGI
更改为使用CGI::Carp qw(fatalsToBrowser)
现在我无法通过query-vars.pl第6行的包“CGI”找到对象方法“new”。
它对应于行my$q=CGI->new();
@cwd-CGI::Carp是一个在使用CGI时向客户端发送错误消息的模块。据我所知,它不提供任何基本的CGI处理,因此您仍然需要CGI本身。您可以添加CGI::Carp,但不要用它替换CGI。当我尝试添加它时,我刚刚得到一个错误500,没有任何关于错误的帮助:(使用CGI.pm../script.CGI foo=bar确保脚本上的权限设置正确。如果脚本不可执行,则它将永远无法运行,服务器将准确报告该消息。使用类似于0755
的掩码的chmod
。
use DDP;
...
p $_GET
use CGI;
use Data::Dump qw/ddx/;
my $q = CGI->new();
print $q->header('text/plain');
my %params = $q->Vars;
print "Content-type: text/plain\n\n"; # had to add this
ddx \%params;