1

我需要从我从网络上抓取的一些链接中读取 pdf 扩展文件。链接保存在$link变量中。但有时,扩展名并没有写在链接中,例如:http://tstc.bz/docs/490除了490是一个pdf文件外,我点击它时扩展名会存在。如何阅读隐藏的扩展名?谢谢我试过用PATHINFO

if (strtolower(pathinfo($link,PATHINFO_EXTENSION)) === 'pdf'){
4

2 回答 2

2

使用此处mime_content_type的文档来获取您尝试加载的文件的类型。

如果您要缓存链接的内容,这是一个不错的选择,因为您需要将文件保存在本地。否则,请像 baba 建议的那样,使用get_headers链接(此处的文档),将非零值作为第二个参数传递给keys结果数组。然后,只需[Content-Type]从结果数组中读取

于 2012-11-26T03:12:54.640 回答
1

您可以使用get_headers

$link = "http://tstc.bz/docs/490";
if (getPdf($link)) {
    // yes its a PDF File
}

使用的功能

function getPdf($link) {
    $ext = strtolower(pathinfo($link, PATHINFO_EXTENSION));
    if (empty($ext)) {
        $type = array_change_key_case(get_headers($link, true), CASE_LOWER);
        if (is_array($type['content-type']))
            return false;
        if (strtolower($type['content-type']) === "application/pdf") {
            return true;
        }
    }
    if ($ext === 'pdf') {
        return true;
    }
    return false;
}
于 2012-11-26T03:28:03.693 回答