如何使perl打印HTML不是原始代码

时间:2013-10-10 20:20:16

标签: html perl

我的网站上有一个.pl perl脚本。 我希望代码打印出来,好像它是一个html页面而不是perl页面。我的代码是下面的,当我访问该页面时,突出显示的是我所看到的内容。当我访问该页面时,我想看到的只是“你好”。不是所有的标签。 (为了上网的目的,我把实际的html代码简单地设为'Hello'而不是我页面上的实际html。虽然它服务器的目的相同......

.pl代码是什么:

#!/usr/bin/perl

use v5.10;
use CGI;

$q = CGI->new;

print $q->header("text/plain");

$html_template = qq{<!DOCTYPE html>
<html>

<head>

  <meta charset="UTF-8">

  <title></title>


</head>
    <body>

  <p>Hello</p>

    </body>
</html>
};

print $q->header;
print $html_template;

访问该页面时打印的内容:

Content-Type: text/html; charset=ISO-8859-1

<!DOCTYPE html>
<html>

<head>

  <meta charset="UTF-8">

  <title></title>


</head>
    <body>

  <p>Hello</p>

    </body>
</html>

我想要打印出来的内容:

Hello

3 个答案:

答案 0 :(得分:7)

print $q->header("text/plain");

如果您告诉浏览器您正在发送文本而不是HTML,那么理智的浏览器会相信您并显示纯文本。

答案 1 :(得分:4)

删除print $q->header("text/plain");


您的代码归结为

print $q->header("text/plain");
print $q->header;
print $html_template;

您发送标题说明以下内容是文本数据。浏览器愉快地将响应的其余部分(第二个标题和一些HTML)显示为文本数据。

你应该这样做

print $q->header("text/html");
print $html_template;

也是使用

实现的
print $q->header;
print $html_template;

答案 2 :(得分:2)

删除行:print $ q-&gt; header(“text / plain”);