HTTP 标头响应的 XML 有效上次编辑时间


XML valid last edit time from HTTP header response

美好的一天!

我正在尝试使用 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,我不需要手头的标头响应。

您可以使用

preg_greppreg_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 ) );

3v4l.org 演示

使用

preg_grep(使用正则表达式模式过滤数组),您可以获得所需的标头,然后使用 array_values 确保所需的标头位于 [0] 键中,然后使用 preg_replace 删除"上次修改时间"部分并将其转换为有效的日期时间字符串。最后,如果需要,您可以根据需要格式化它。