我想用:
src="my_generated_image_from_php.jpg"
而不是
src="my_php_image.php"
我该怎么做?
my_php_image.php喜欢:
<?php
......
Header('Content-type: image/png');
imagepng($im2);
imagedestroy($im2);
......
?>
答案 0 :(得分:1)
您可能正在考虑网址重写(mod_rewrite
),该网址用于提供不同网址的内容。
my_generated_image_from_php.jpeg
(隐藏文件的真实扩展名为''php')可能会让你与my_php_image.php?image=my_generated_image_from_php.jpeg
相同。
当谈到MIME类型和脚本响应的标题时,如果你可以包含它会很好,但这不是达到预期目的所必需的。
答案 1 :(得分:0)
您需要在my_php_image.php文件中发送图像标题和图像二进制文件,如下所示:
header("Content-Type: image/jpeg");
echo file_get_contents("my_generated_image_from_php.jpeg");
显然,您需要确保图像的相对路径正确才能正常工作。否则,只需使用根目录中的绝对路径。
如果这样做,您将能够使用第二个选项作为图像源。
答案 2 :(得分:0)
这是Drupal如何做到的。您的图片网址如index.php?q=some/path/to/the/image.jpg
,但如果您的网络服务器设置正确,则可以使用以下简单规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
现在PHP可以使用
提取请求路径$request_path = strtok($_SERVER['REQUEST_URI'], '?')
$base_path_len = strlen(rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/'));
// Unescape and strip $base_path prefix, leaving q without a leading slash.
$path = substr(urldecode($request_path), $base_path_len + 1);
完成此操作后,BraedenP表示您只需要正确的HTTP标头即可离开。
答案 3 :(得分:0)
如果我理解正确,您需要将php生成的图像保存为实际图像文件。我会在这里开始阅读: