-1
是否有一種簡單的方法從使用PHP通過wget下載的文件獲取文件名和擴展名?從wget響應中獲取「文件名」和擴展名
確切的問題是。 我試圖在接受我的Facebook應用程序後訪問用戶的Facebook圖像。
//e.g
wget http://graph.facebook.com/663660516/picture
因此,我不知道下載文件的文件名/擴展名。
是否有一種簡單的方法從使用PHP通過wget下載的文件獲取文件名和擴展名?從wget響應中獲取「文件名」和擴展名
確切的問題是。 我試圖在接受我的Facebook應用程序後訪問用戶的Facebook圖像。
//e.g
wget http://graph.facebook.com/663660516/picture
因此,我不知道下載文件的文件名/擴展名。
使用下面我能夠得到的文件名:
<?php
ob_start();
passthru('wget http://graph.facebook.com/663660516/picture 2>&1');
$out = ob_get_contents();
ob_end_clean();
if (preg_match('/saving to:.{4}([a-z0-9\.-_]*)/i', $out, $match)) {
var_dump($match);
} else {
echo "No match";
}
結果:
array(2) {
[0]=>
string(47) "Saving to: 「275781_663660516_1323021723_q.jpg"
[1]=>
string(33) "275781_663660516_1323021723_q.jpg"
}
從$result[1]
使用pathinfo()或類似的方法的延伸和名稱,你可以再拿到。
注意:正則表達式中的{4}將消耗文件周圍的特殊引號(「
)wget輸出(至少在我的系統上)。它在PHP中註冊爲3個字節,我無法通過字符代碼來匹配它,所以在我看來這有點破綻。還假定系統語言是英語,因爲它在輸出中查找Saving to:
。
希望有所幫助。
所以你想知道如何獲取任何文件的名稱和擴展名? – 2012-02-05 20:50:59
您能否向我們提供更多詳細信息?這太模糊了。 – 2012-02-05 20:51:44
從技術上講,你不能。您所能做的只是基於URL或者Content-Disposition標題(如果存在)進行猜測。誰知道遠程服務器上的實際文件名是什麼。 – Brad 2012-02-05 20:52:27