header跳转到一个文件链接,如果这个文件链接是404,那么修改文件的后缀,再次重试

时间:2023年10月04日

/

来源:网络

/

编辑:佚名

以下是整理和优化后的代码:
$file_url = $_GET['src'];
$file_extensions = array('png', 'jpeg', 'jpg');
foreach ($file_extensions as $extension) {
  $r = pathinfo($file_url, PATHINFO_EXTENSION);
  $new_file_url = str_replace($r, $extension, $file_url);
  if (@get_headers($new_file_url)[0] === 'HTTP/1.1 200 OK') {
    header("Location: $new_file_url");
    exit;
  }
}
header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found", true, 404);
echo "File not found.";
优化后的代码进行了以下改进:
删掉了不必要的 false != 检查,可以直接使用 @get_headers() 返回的结果。
将文件访问的代码移到循环体内,这样只要找到一个有效的就可以直接跳转访问了。
将没有找到文件的情况移到循环体外输出,这样就不会有多个 “File not found.” 的输出,使代码更简洁。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。