美好的一天!
我正在尝试使用PHP生成站点地图。 我想优化我的代码,因此我想知道是否有办法通过分析其标题来确定文件的最后修改时间(我知道它返回最后修改但时间格式很奇怪,也是$ http_response_header数组中的此信息可能会更改)。我需要这样的东西:
$html = file_get_contents($file, $context);
magicFunction($http_response_header); //returns last modified date in dd-mm-yyyy format
有什么想法吗?我在StackOverflow上找到了一些解决方案,但它们都暗示了像filemtime或gmtime这样的额外函数,我不需要手头的标题响应。
答案 0 :(得分:0)
您可以使用preg_grep
和preg_replace
:
$pattern = '/^Last-Modified: (.+)$/';
$found = array_values( preg_grep( $pattern, $http_response_header ) );
$dateString = preg_replace( $pattern, '\1', $found[0] );
$lastModified = date( 'Y-m-d H:i:s', strtotime( $dateString ) );
的 eval.in demo 强>
使用preg_grep
(使用正则表达式模式过滤数组),您将获得所需的标头,然后使用array_values
确保所需的标头位于[0]键中,然后使用preg_replace
删除“Last-Modified”部分并将其转换为有效的日期时间字符串。最后,如果您愿意,可以根据需要对其进行格式化。