2011-05-17 97 views
1

一个PHP图像我想用:中如何产生SRC

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); 
    ......  
?> 
+1

把它们放在同一个目录下? – Ben 2011-05-17 02:30:26

+0

你的意思是如何让一个php文件显示为.jpg?你将不得不使用mod_rewrite – tlunter 2011-05-17 02:35:28

回答

0

你需要与二进制图像一起发送图像头在你的my_php_image.php文件像这样:

header("Content-Type: image/jpeg"); 
echo file_get_contents("my_generated_image_from_php.jpeg"); 

显然,你”我们需要确保图像的相对路径正确才能正常工作。否则,只需使用根目录中的绝对路径。

如果你这样做,你将能够使用第二个选项作为图像源。

0

以下是Drupal如何做到这一点。您的网址的图像看起来像index.php?q=some/path/to/the/image.jpg,但如果你的Web服务器树立正确的这些简单的规则:

一旦你做到了这一点作为BraedenP说
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); 

请求路径你只需要正确的HTTP头,然后离开你。

1

你可能会想URL重写(mod_rewrite),这是用来服务于不同的URL的东西。

my_generated_image_from_php.jpeg(隐藏名为“php”的文件的实际扩展名)可能会得到与my_php_image.php?image=my_generated_image_from_php.jpeg相同的内容。

当涉及到MIME类型和脚本响应的头部时,如果您可以包含它,这将是一件好事,但这不是实现您所期望的。