Favicon PHP缓存问题

时间:2019-04-09 15:32:02

标签: php

在GitHub https://github.com/ao/favicons上找到了这个PHP脚本,并且看起来运行良好。易于合并到可能需要收藏夹图标的其他脚本中。

注意:似乎受尊敬的用户在这里建议不要使用此代码...请参阅下面的评论...

我遇到的问题是机器无法正常工作。如果您查看index.php的顶部,则会看到:

<?php
error_reporting(0);
// Change the location where images are stored/retrieved
//$_CACHE_PATH = "../favicon_cache";    // one directory up
$_CACHE_PATH = "cache";                 // current directory
if (!isset($_GET['url'])) die();

if (substr( $_GET['url'], 0, 4 ) !== "http") {
    $_GET['url'] = "http://".$_GET['url'];
}
$parse = parse_url($_GET['url']);
$domain = $parse['host'];
if (isset($_GET['refresh'])) {
    @unlink('../'+$_CACHE_PATH+'/'.$domain);
}
if (isset($_GET['debug'])) {
    require 'FaviconDownloader.php';
    $_favicon = new FaviconDownloader($_GET['url']);
    $_favicon->debug();
    die();
}
if (file_exists($_CACHE_PATH+'/'.$domain)) {
    //show cached copy first!
    header('Content-Type: image/png');
    echo file_get_contents($_CACHE_PATH+'/'.$domain);
    die();
}
require 'FaviconDownloader.php';
$favicon = new FaviconDownloader($_GET['url']);
if($favicon->icoExists){
    if (!file_exists($_CACHE_PATH+'/'.$domain)) {
        file_put_contents($_CACHE_PATH+'/'.$domain, $favicon->icoData);
    }
    header('Content-Type: image/png');
    echo file_get_contents($_CACHE_PATH+'/'.$domain);
} else {
    header('Content-Type: image/png');
    echo file_get_contents('default.png');
}
?>

整个index.php:https://github.com/ao/favicons/blob/master/index.php

无论我将缓存文件夹更改为什么,所有图标都仍会写入根文件夹。尝试对代码进行一些调整,但似乎没有任何效果。删除error_reporting(0);在index.php顶部没有显示任何其他错误(仅显示:资源被解释为Document,但在开发者控制台中以MIME类型image / png传输)。

我的缓存文件夹是可写的,并且已正确分配给所有者,因此请确保在那里没有问题。

开始在GitHub上提问/公开问题,但看到另一个人也遇到同样的问题,而作者没有给出答案。希望这里的PHP技术比我更好的人可以为我指明正确的方向。

1 个答案:

答案 0 :(得分:1)

您应该使用点运算符(。)来缩进字符串,例如

echo file_get_contents($_CACHE_PATH+'/'.$domain);

应更改为

echo file_get_contents($_CACHE_PATH.'/'.$domain);