【问题标题】:Trouble with printing <bbb>-constructs in perl在 perl 中打印 <bbb>-constructs 的问题
【发布时间】:2016-06-30 21:05:25
【问题描述】:

我有一个小的 CGI perl 脚本,我想打印一个包含纯文本的文件以输出为 html。到目前为止,上帝,但是,该文件包含一些用 括起来的文本,即。 &lt;bbb&gt;。问题是&lt;bbb&gt; 被删除了。当我执行这样的简单打印语句时也会发生同样的情况:

print "aaa <bbb> ccc";

显示

aaa  ccc

我已经四处寻找,但无法找到解决方案。其中,我发现了这个Printing string in Perl,但真的看不出答案是如何适用的?

【问题讨论】:

  • 我对 print "aaa &lt;bbb&gt; ccc"; 没有问题,它显示:aaa &lt;bbb&gt; ccc。尝试把双引号改成单引号,也许可以逃脱忽略的分隔符。
  • 您是在尝试通过从命令行运行脚本提供的示例打印语句,还是在浏览器中查看其输出的 CGI 脚本?在后一种情况下,您需要将&amp;lt; 更改为&amp;lt;,否则浏览器会将&lt;bbb&gt; 解释为HTML。 escapeHTML() 函数将为您完成转换。
  • 如果我创建一个名为 a.pl 的文件,其中包含 print 行并在 iTerm / Terminal 中运行 perl a.pl。准确地产生字符串。所以我认为运行它的环境是不同的。你能提供更多信息吗?

标签: html perl cgi


【解决方案1】:

您是否在网络浏览器中显示输出?那就试试吧

print "aaa &lt;bbb&gt; ccc";

如果您需要在其他文本行上进行类似的转换,请查看 HTML::Entities 模块。

【讨论】:

  • 谢谢,是的。它是与前置标签一起显示的纯文本。然后,我将用相应的 html 字符替换 's ...
  • 就我而言,只需替换这两个字符就足够了。但是,正如@grant 所建议的那样,我确实看到 CGI 中内置的 escapeHTML 函数在一般情况下会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 2023-01-10
相关资源
最近更新 更多