簡體   English   中英

使用 curl w/ PHP 5.3.x 保存未知文件

[英]saving unknown files with curl w/ PHP 5.3.x

我正在嘗試歸檔一個 web 基礎論壇,其中包含用戶發布的附件。 到目前為止,我使用 php cURL 庫來獲取各個主題並能夠保存原始頁面。 但是,我現在需要找到一種方法來歸檔網站上的附件。

問題出在這里:由於文件類型不一致,我需要找到一種方法以正確的擴展名保存文件。 請注意,我計划在保存文件時重命名文件,以便以后可以輕松找到它。

頁面中附加文件的鏈接格式為:

<a href="https://example.com/get_file?fileId=4342343212223">some file.txt</a>

我已經使用 preg_match() 來獲取附加文件的 URL。 我現在最大的問題是確保獲取的文件以正確的格式保存。

我的問題:有什么方法可以有效地獲取文件類型? 我寧願不必使用正則表達式,但我沒有看到任何其他方式。

服務器在提供文件時是否添加了正確的Content-Type header 字段? 然后,您可以通過設置CURLOPT_HEADERfile_get_contents + $http_response_header來攔截它。

http://www.php.net/manual/en/reserved.variables.httpresponseheader.php

我會調查

http://www.php.net/manual/en/book.fileinfo.php

看看您是否可以在獲取文件類型時自動獲取文件類型。

您可以使用 DOMDocument 和 DOMXpath 安全地提取 url 和文件名。

$doc=new DOMDocument();
$doc->loadHTML($content);
$xpath= new DOMXpath($doc);
//query examples:
foreach($xpath->query('//a') as $node)
    echo $node->nodeValue;
foreach($xpath->query('//a/@href') as $node)
    echo $node->nodeValue;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM