我遇到了一种情况,以前的开发人员在图像中使用php文件,source.Here就是为此编写的代码
<img class="large_image" src="http://www.example.com/common/resize.php?img=4_jisokupo_jpg&d=467&w=461&h=307" id="large_image_1" style="display: inline;">
当我复制图片标签的源代码并在浏览器中运行并检查它的源代码时,它再次给我图片标签
<img class="decoded" src="http://www.example.com/common/resize.php?img=4_jisokupo_jpg&d=467&w=461&h=307" alt="">
请指导他们在做什么?是img src中的img标签吗?
我知道这是一个常见的问题,但我是PHP新手。
更新:我们可以在src中使用php文件吗?它应该在php文件中做什么?
发布于 2014-06-08 15:29:42
实际上您可以使用PHP
来生成镜像,例如:
$contents = file_get_contents('path_to_an_image.jpeg');
header('Content-type: image/jpeg');
echo $contents;
这只是一个例子来澄清你,但在你的问题中,情况是不同的。看起来,正在调用http://www.example.com/common/resize.php
,并将查询字符串传递给该脚本,以便该脚本可以使用以下命令访问这些参数:
// in resize.php
$img = $_GET['img']; // 4_jisokupo_jpg
$d = $_GET['d']; // 467
$w = $_GET['w']; // 461
$w = $_GET['h']; // 307
然后,在调整图像大小后,将返回新图像,请查看imagejpeg / imagecreatefromjpeg以了解更多想法。因此,当脚本运行以回显<img src='some.php' />
时,将执行some.php
文件来传递图像,并在浏览器中打印动态图像。
在YouTube
(PHP Custom Image Cropping Tutorial)上查看以下视频,了解有关使用PHP
处理图像的更多信息。
发布于 2014-06-08 15:21:27
当您在web浏览器中查看源代码时,您看到的是生成它的PHP的解释过的php/html/等输出;这就是您感到困惑的原因。我建议查找一些关于PHP的介绍性课程,以便从服务器和客户端的角度更好地理解事物是如何工作的。
SERVER
.----Website (PHP)-----------------------------------------------.
| | |
| | |
| |______Image Class "large_image" |
| | |
| | |
| |____source "some large image" |
| | |
\_______ ________________________________|_____________________/
⬇
CLIENT
.------Web Browser (rendered PHP)--------------------------------.
| | |
| | |
| |_______Image Class "decoded" |
| | |
| | |
| |_____source "same large image" |
| |
\________________________________________________________________/
发布于 2014-06-08 15:38:18
当您从html复制src
并将其放入浏览器中时,发生的情况是您在浏览器中打开由PHP动态创建的图像。
当您直接在浏览器中打开图像时,浏览器会在其DOM中生成一些非常简单和基本的html,以显示您直接打开的图像。这就是当您检查Element并转到HTML选项卡时所看到的内容。如果你仔细观察,一旦直接打开图像,你甚至看不到“查看源代码”按钮。您只能看到Inspect Element按钮。
超文本标记语言不是源代码,而是你正在查看的‘页面’的DOM表示。
关于您的编辑
因此,src
中的php文件是一个动态创建图像并输出其二进制数据的文件。这是可能的,在WereWolf的答案-阿尔法中有更多的解释。您的浏览器可以识别该二进制数据,并从中渲染出一个图像。(部分是因为它知道它是作为'img‘标签的'src’打开的,所以它期望url将返回一个图像。但主要是因为发送的“content-type”报头也告诉我们数据是图像。)
它只是当浏览器将这些二进制数据显示为图像时,浏览器本身会在DOM中生成一些HTML,因此图像将显示为“html”页面。因为,嘿,这就是浏览器所做的,他们想向你展示HTML :)
https://stackoverflow.com/questions/24103848
复制相似问题