无论如何要检查一个文件,在我的情况下是一个图像文件,是否落后于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
答案 0 :(得分:4)
使用类似cURL的内容,您可以发送HTTP请求并查看请求代码。如果显示401或403,则表示未经授权。否则,没关系。
更新:为此使用get_headers()
方法会更简单。数组中的第一项将是响应代码,您可以按上述方式处理。
答案 1 :(得分:1)
您可以阅读.htaccess文件并查找需要的字词,或根据.htaccess文件的变化情况做更聪明的事情:
这样的事情:
if(strpos(file_get_contents($folder."/.htaccess"), "require") === false)
{
// show image
}
当然,您希望缓存每个文件夹的输出。