我需要开发一个代码来识别给定URL中每个文件的缓存时间,例如this tool
为此,我使用PHP与CURL:
$website = 'https://stackoverflow.com';
$ch = curl_init($website);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$resp = curl_exec($ch);
var_dump($resp);
但在响应中我没有看到缓存文件的时代,而cache control
的目标是私有。
要解决此问题,我必须从页面正文中存在的每个图像文件,javascript,css中获取链接,并运行与上面相同的CURL代码。
最后会显示缓存控件,有些显示一个巨大的日期(最大年龄= 315360000)其他显示一个小日期(最大年龄= 604800),现在仍然知道如何转换和识别何时缓存控制是指日,分,年或秒?
一个可以从秒转换成人类可读的格式,如下所示:
sprintf('%02d:%02d:%02d', ($s/3600), ($s/60%60), $s%60);