1

我正在寻找一种通过 php 动态加载图像的方法,类似于使用 Travis 的方式。

例如这个

在此处输入图像描述这是https://api.travis-ci.org/travis-ci/travis-ci.png

在此处输入图像描述https://api.travis-ci.org/travis-ci/travis-ci.png?branch=v3

据我了解,服务器端有一些 php 逻辑,它们接受参数,然后选择要显示的图像。

您如何通过服务器端的 .php 脚本获取图像 URL?

谢谢!

4

4 回答 4

1
<Directory /var/www/htdocs>
    RewriteEngine on
    RewriteBase /var/www/htdocs

    RewriteCond $1.php -f
    RewriteCond $1.png !-f
    RewriteCond %{QUERY_STRING}  (.*)
    RewriteRule ^(.*).png$ image.php?name=%2&%1
</Directory>

为此要求实现 image.php。

于 2013-10-16T21:01:39.007 回答
1

最简单的方法是:

<?php
$image = 'default.png';
if ('foo' == 'bar') {
    $image = 'otherimage.png';
}
header('Content-Type: image/png');
readfile($image);
?>

现在您可以打开 php 文件,您将获得图像。如果您想拥有一个扩展名为“png”的文件,您可以使用网络服务器的重写功能。

于 2013-10-16T20:47:15.863 回答
1

您很可能可以在 .htaccess 中使用 mod_rewrite 将 .png 文件重写为 getimage.php 或类似的东西,将文件名 (travis-ci.png) 作为另一个 get 变量传递getimage.php?name=travis-ci.png。然后 PHP 文件根据设置的值$_GET['name']$_GET['branch']设置的值显示该图像。

于 2013-10-16T20:52:35.627 回答
0

你没有。.png 文件实际上是一个带有 PHP 代码的文件,它输出一个 image/png 标头。

要让 PHP 解释一个 .png 文件,您必须相应地更改您的网络服务器配置。

不过要小心,您可能不想解释所有png 文件(特别是如果您接受文件上传)。

于 2013-10-16T20:47:23.533 回答