给图像“假”的名字

时间:2014-08-06 22:15:30

标签: php mod-rewrite rename gdlib

我想知道是否可以重命名图像"在飞行中" - 通过这个含义,如果你可以做某种重命名功能,那么在代码中,图像名称会被更改,但原始图像名称不会被更改。

示例:

我有一个包含2行的数据库,如下所示:

new_diverse    id   tekst   active       pic
----------------------------------------------
Row1            1    yellow     1    testimage.jpg
Row2            2    green      1    testimage.jpg 

<img src="/images/testimage.jpg" />

让我们在页面yellow.php上说调用行id#1,在页面green.php上调用行id#2。

这两行都链接到相同的jpg图像,但我希望代码(the)具有来自&#34; tekst&#34;的颜色。在表中作为文件名而不是,所以如果你右键单击图像,属性将声明文件名将是例如。 green.jpg而不是testimage.jpg - 这可能吗?

有人告诉我,GDlib也许可以做到这一点,但我对此并不了解。

非常感谢你提前

编辑 -

对于更新此问题的迟到回复感到抱歉。

我想通过这样做来实现的是关于SEO。我正在开发一个有多种语言的网站(我相信它会在10种语言中完成)。对于每个页面都会有图像,我希望在SEO中尽可能好,因此我希望用各自的语言命名图像,而不必制作10个相同的图像副本,只有文件名不同。因此,我正在寻找一种方法来编写特定语言的文件名&#34;即时#34;。

E.g。我有一个名为&#34; 2012-nice-red-mustang.jpg&#34;在我的webhotel上的根文件夹中。当我用英语访问我的页面时,图像的文件名将与原始文件一样,但是当用图像查看西班牙语页面时,文件名已被重命名为&#34; 2012-bonito-rojo-mustang.jpg&#34 ; (从数据库中的表中检索翻译的文件名)。

我希望这能澄清问题以及我想要做的事情。

1 个答案:

答案 0 :(得分:0)

您需要一些不同的部分才能完成这项工作:

  1. 将浏览器的图像请求发送到php脚本,而不仅仅是磁盘上的图像文件。这可以在您的http服务器(例如Apache的mod_rewrite)中完成,也可以直接在html(<img src="/image.php?name=testimage.jpg" alt=""/>)中完成。
  2. 设置适当的标题,以便浏览器将响应正确解释为图像文件。通常,这是由您的http服务器(Apache)完成的。如果它是jpg,那将是这样的:header('Content-Type: image/jpeg');
  3. 将图像数据发送到浏览器。最简单的方法是直接从图像文件中读取它(如果您不希望人们直接访问它,可能在网络根目录之外):readfile($actualFilePath);如果您想要生成或者动态修改图像,这就是GD会发挥作用的地方。
  4. 如果您正在寻找有关mod_rewrite部分如何运作的更多信息,您可以查看以下问题:Apache - rewrite images to php file with .htaccess