PHP 在页面中嵌入图像

本文最后更新于:2024年3月18日 凌晨

PHP 在页面中嵌入图像

  • 一个常见的误解是:图片和文字是通过同一个HTTP请求混合发送的,毕竟,当你看到一个网页时,图片和文字是混合在一起的,而实际上,一个包含图像和文字的标准Web页面是由一系列来自Web浏览器的HTTP请求来创建的,每一个请求的响应都来自于服务器,每个请求的响应只包含一种数据类型,每一个图像要求一个独立的HTTP请求和服务器进行通讯,因此当你看到包含一些文字和两幅图像的网页时,你就知道这个页面是由3次请求和响应的响应来完成的。
  • 例如下面的HTML的页面:
1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>Exaple Page</title>
</head>
<body>
This page contains two images.
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
</body>
</html>
  • Web浏览器为该页面发送的一系列请求类似于:
1
2
3
GET /page.html HTTP/1.0
GET /image1.jpg HTTP/1.0
GET /image2.jpg HTTP/1.0
  • 服务器为以上每个请求发送一个单独的响应,响应汇总的Content-Type头是这样的:
1
2
3
Content-Type: text/html
Content-Type: image/jpeg
Content-Type: image/jpeg
  • 要在HTML页面中嵌入由PHP生成的图像,就要假设生成图像的PHP脚本本身就是图像,因此,如果我们有两个用来生成图像的PHP脚本image1.phpimage2.php,就可以将前例中的HTML代码改为:
1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>Exaple Page</title>
</head>
<body>
This page contains two images.
<img src="image1.php" alt="Image 1">
<img src="image2.php" alt="Image 2">
</body>
</html>
  • 现在页面不在从你的服务器中读取真实存在的图像,img标签引用了生成图像的PHP脚本。
  • 更进一步,你可以传递变量给这些脚本,这样我们不再需要不同的脚本来生成两个图像。
1
2
<img src="image.php?num=1" alt="Image 1">
<img src="image.php?num=2" alt="Image 2">
  • 在image.php脚本中,你可以访问$_GET['num']来生成合适的图像。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!