【问题标题】:How to remove white spaces in CGI Script?如何删除 CGI 脚本中的空格?
【发布时间】:2014-05-15 11:32:06
【问题描述】:

使用split 函数后,我在$sysip 变量中存储了一个URL。

我有一个类似的超链接

https://$sysip/home.jsp

这里的问题是,当我单击超链接时,URL 中会添加空格。它带我去

%09%09%09(Actualip)/home/jsp.

页面没有打开。这仅在 Safari 浏览器中发生。

%09 是因为空格。如何修剪 URL 中的空格? 谁能帮帮我吗?我对 CGI 脚本非常陌生。

【问题讨论】:

  • 您的 Perl 代码中有一个错误。解决此问题的方法是更正您的代码,而不是添加更多代码来纠正症状。请显示您的代码和数据。 %09 是一个制表符。您是否要拆分空格字符,例如split / /, $data?使用split ' ', $data 在任何空格上拆分可能会有所帮助
  • ($sys_ip, $junk)=split(/\//, $ip); print ("
    点击这里启动

    ");这里我从属性文件中读取 $ip 。新窗口在地址栏中包含 https://%09%09%09(ip)/jsp。
  • 在拆分之前使用use Data::Dumper; $Data::Dumper::Useqq = 1; print Dumper($ip);显示$ip的内容。
  • 谢谢@Borodin.. 实际上,我一直在寻找这些陈述。这是什么Useqq?为什么用它?
  • 它使Data::Dumper 使用双引号显示字符串,控制字符表示为可打印的转义序列。以这种方式发现嵌入式选项卡和换行符等数据要容易得多。 Data::Dump 模块更好,但它不是核心模块,可能需要安装。

标签: perl split cgi


【解决方案1】:

只需用任何内容替换任何前导空格即可:

$sysip =~ s/^\s+//;

或者,如果您也需要删除尾随空格:

$sysip =~ s/^\s+|\s+$//g;

【讨论】:

  • 谢谢@choroba。让我试试。
【解决方案2】:

修改 URL 特定部分的最佳方法是使用 URI 模块。

例如

use strict;
use warnings;

use URI;

my $url = 'https://www.example.com/home.jsp';

my $new_url = URI->new($url);
$new_url->scheme('http');
$new_url->path('/home/jsp');

print $new_url;

输出

http://www.example.com/home/jsp

【讨论】:

  • 非常感谢@Borodin :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-11
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
相关资源
最近更新 更多