检查文件是否落后于htaccess

时间:2017-01-16 15:45:51

标签: php .htaccess

无论如何要检查一个文件,在我的情况下是一个图像文件,是否落后于htaccess?

我正在尝试回显图像src的路径,在某些情况下,文件将位于htaccess所需的身份验证之后。在那种情况下,我希望它什么都不显示。现在,它显示登录/密码提示,因为我正在引用该图像。

样品:

folder2支持所需的身份验证

$folders = ['folder1','folder2'];

foreach($folders as $folder){

    if(is_readable($folder.'/thumb.png'))
        echo "<img src='{$folder}/thumb.png' />";
    else
        echo 'img not found';

}

我尝试过is_readable和file_exists,两者似乎仍然出现提示。

编辑:htaccess文件

AuthType Basic
AuthUserFile /home/.../.htpasswd
AuthName "Please Log In"
require valid-user

2 个答案:

答案 0 :(得分:4)

使用类似cURL的内容,您可以发送HTTP请求并查看请求代码。如果显示401或403,则表示未经授权。否则,没关系。

更新:为此使用get_headers()方法会更简单。数组中的第一项将是响应代码,您可以按上述方式处理。

答案 1 :(得分:1)

您可以阅读.htaccess文件并查找需要的字词,或根据.htaccess文件的变化情况做更聪明的事情:

这样的事情:

if(strpos(file_get_contents($folder."/.htaccess"), "require") === false)
{
    // show image
}

当然,您希望缓存每个文件夹的输出。