1

Web からクロールしたいくつかのリンクから 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に、リンク (ドキュメントはこちら) で使用し、2 番目のパラメーターとしてゼロ以外の値を渡して、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 に答える