读取由Content-Disposition返回的xls文件可以使用PHP的文件操作函数来实现。具体步骤如下:
以下是一个示例代码:
<?php
// 发送HTTP请求获取响应内容
$url = 'http://example.com/file.xls';
$response = file_get_contents($url);
// 解析Content-Disposition字段获取文件名
$headers = get_headers($url);
$filename = '';
foreach ($headers as $header) {
if (strpos($header, 'Content-Disposition') !== false) {
$matches = array();
preg_match('/filename="(.+)"/', $header, $matches);
if (isset($matches[1])) {
$filename = $matches[1];
break;
}
}
}
// 保存响应内容为临时文件
$tempFile = tempnam(sys_get_temp_dir(), 'xls');
file_put_contents($tempFile, $response);
// 使用PHPExcel或PhpSpreadsheet读取xls数据
require 'vendor/autoload.php'; // 根据实际情况引入PHPExcel或PhpSpreadsheet库
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
$spreadsheet = $reader->load($tempFile);
$data = $spreadsheet->getActiveSheet()->toArray();
// 打印读取的数据
print_r($data);
// 删除临时文件
unlink($tempFile);
?>
请注意,上述示例代码中使用了PHPExcel和PhpSpreadsheet库来读取xls文件,你可以根据实际情况选择其中一个库来使用。另外,为了简化示例代码,没有进行错误处理和异常处理,实际使用时需要根据具体情况进行适当的错误处理。
领取专属 10元无门槛券
手把手带您无忧上云