在动态生成的html页面中显示混合内容

时间:2011-08-09 01:56:57

标签: html perl dynamic

我想要显示两个.png文件以及由Perl动态生成的html页面中的一些文本。在一个完美的世界中,这将是一个3列布局,第一列中的文本和第二列和第三列中的两个.png文件。我不断遇到的问题是需要其中一个标签:

print "Content-type: image/png\n\n";
print "Content-type: text/html\n\n";

我只能在html中包含一个,这意味着我只能显示文本或图像,但不能同时显示两者。

显然必须有办法做到这一点,但到目前为止,谷歌搜索让我无处可去。

感谢任何建议。

问候。


以下是我用来生成动态html的打印语句:

   print "<html>";
   print "<head>";
   print "Content-type: text/html\n\n";
   print "</head>";
   print "<body>";
   print "<table>";
   print "<tr><td>Number of Sentences = $numSentences</td><td rowspan=\"4\"><img src=\"/home/kfarmer/public_html/kevin/charFreq.png\" /></td><td rowspan=\"4\"><img src=\"/home/kfarmer/public_html/kevin/charFreq.png\" /></td></tr>";
   print "<tr><td>Number of Words = $numWords</td></tr>";
   print "<tr><td>Number of Unique Words = $numUniqueWords</td></tr>";
   print "<tr><td>Number of English Characters = $numEnglishCharacters</td></tr>";
   print "</table></body></html>";

但是,现在当我生成这个页面时,我会弹出一个问题,告诉我如何打开文件 - 文件就是我上面打印的内容。

3 个答案:

答案 0 :(得分:1)

一个HTTP响应发送一个东西,每个东西都有自己的内容头。您不需要在一个响应中包含页面中的所有内容。

从Perl,只需使用HTML功能链接到图像文件。在HTML中,您将包括:

 <img src="url to PNG"/>

如果有一个CGI脚本提供动态图像,您只需在HTML中链接到它:

 <img src="/cgi-bin/imager.png?key=value;..."/>

CGI脚本必须返回正确的内容类型,无论是HTML还是图像数据。

浏览器将解释HTML,查看图像的链接,并提出其他请求以获取图像。

答案 1 :(得分:0)

我担心你会混淆一些定义/技术。

Context-typeHTTP header的一部分。当您的浏览器获取网页时,它通常使用HTTP,其中包含多个标题字段和一个数据块(例如包含所请求的数据)。如果您使用(体面的)Web服务器,则无需担心HTTP标头(通常)。

为了显示3列页面,带有两个(或任何其他数量)图像和一些文本。您需要生成HTML page。在此页面上,您告诉浏览器它应该下载图像并将其与文本一起显示。

为了做到这一点,你必须以包含所谓元素的预定义格式生成HTML页面:

<html>
  <head><title>mypage</title></head>
  <body>
    This is the visible part of the page
  </body>
</html>

现在在body元素中,您可以生成文本和图像。可以使用img element将图像放置在页面上。

查看w3schools以获取有关这些主题的更多详细教程。如果您获得了一些更基本的知识,可以尝试使用perl(或任何其他(脚本)语言)生成HTML页面。

答案 2 :(得分:0)

您的问题更有可能是图像是驱动器上的绝对路径,而不是网络服务器上图像的相对路径。

我注意到你的img src是'/home/kfarmer/public_html/kevin/charFreq.png'

所以,如果您的网络服务器根目录为'/ home / kfarmer / public_html / kevin',那么当您访问someurl.com时会加载,那么您的img src应该只是'/charFreq.png'

如果服务器的根目录是'/ home / kfarmer / public_html',那么你的img src应该是'kevin / charFreq.png'

这比这更复杂,因为网址是相对于加载页面的位置。

所以,如果页面是www.someurl.com/kevin/anotherfolder/mypage.html,并且你想在'kevin / someotherplace / charFreq.png'中加载图像,那么你需要你的img src为'/ kevin / someotherplace / charFreq.png'OR'../ someotherplace / charFreq.png'