我遇到php image caching的问题。我已经在作者问题页面上发布了这个,但它没有活动。
网络服务器: NGINX
PHP版本: 5.5.9-1ubuntu4.14
我收到此错误最终图片网址已损坏。该页面看起来像这样 应显示100张图像,但在第三张图像中显示。 页面看起来应该与此类似(这是localhost设计)
返回此网址
/
和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
,但它说当我这样做时无法找到目录。
答案 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']
没有以斜杠结尾,那么您的网址就不会有。