1

我的网站上有一个 .pl perl 脚本。我希望代码打印出来,就好像它是一个 html 页面而不是 perl 页面。我的代码如下,当我访问该页面时,高亮显示的是我“看到”的内容。当我访问该页面时,我希望看到的只是“你好”。不是所有的标签。(为了在线,我将实际的 html 代码简单地制作为“你好”,而不是我页面上的实际 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
4

3 回答 3

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

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

于 2013-10-10T20:22:10.780 回答
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;
于 2013-10-10T20:27:09.387 回答
2

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

于 2013-10-10T20:22:23.813 回答