PHP图像缓存

时间:2015-12-17 02:03:03

标签: php caching

我遇到php image caching的问题。我已经在作者问题页面上发布了这个,但它没有活动。

网络服务器: NGINX

PHP版本: 5.5.9-1ubuntu4.14

我收到此错误最终图片网址已损坏。该页面看起来像这样 page 应显示100张图像,但在第三张图像中显示。 页面看起来应该与此类似(这是localhost设计) Design of Page

返回此网址 exampleImage

/mediapage.zips.me之间应该有core,但它是本地图片,因此我不明白为什么它甚至需要主机名。< / p>

我是怎么做的,

在每个页面的顶部,我调用另一个包含类

设置的页面
<?php
    //Calls the php-image things
    include 'test.php';

?>

内部test.php

<?php 
    require_once 'core/classes/ImageCache.php';
    $imagecache = new ImageCache();
?>

图片页

<?php 
    //Directory NON-CACHED images are stored in
    $dir    =   "i/";

    //Array of files in the Directory
    $files1 =   scandir($dir);
    //Used to limit results (100's of images)
    $count = 0;
    foreach ($files1 as $key) {
        //If the file name is longer than 3 chars and the count is less 
        //than the amount of images I want displayed.
        if (strlen($key) > 3 && $count <= 100){
            $count++;
            //dir2 is the directory/nameofFile.extension
            //Eg: i/testImage.png
            $dir2   =   $dir.''.$key;
            $info = new SplFileInfo($key);
            //Image Cache variable
            $cached_src = $imagecache->cache($dir2);
?>
    <tr>
        <td>
            <!-- Link for light box for full resolution image -->
            <a href="<?php echo $dir2;?>" data-popup="lightbox">
                <!-- src of cached image is outputted and the alt is the name of the uncached image. -->
                <img src="<?php echo $cached_src;?>" alt="<?php echo $key;?>" class="img-rounded img-preview">
            </a>
        </td>
        <!-- More table stuff... -->
    </tr>

<?php
        } //End If
    } //End for
?>

我已尝试在目录名/中添加$dir,但它说当我这样做时无法找到目录。

2 个答案:

答案 0 :(得分:0)

        <!-- Link for light box for full resolution image -->
        <a href="<?php echo $dir2; ?>" data-popup="lightbox">
            <!-- src of cached image is outputted and the alt is the name of the uncached image. -->
            <img src="/<?php echo $cached_src; ?>" alt="<?php echo $key; ?>" class="img-rounded img-preview">
        </a>

这可以通过在$cached_src之前简化斜杠来实现。

答案 1 :(得分:0)

我会看一下ImageCache github page作为参考。如果缓存的图像尚不存在,则脚本将使用$_SERVER['HTTP_HOST']。所以验证那是什么。看起来如果您的$_SERVER['HTTP_HOST']没有以斜杠结尾,那么您的网址就不会有。