1. 程式人生 > >linux wget 及 PHP wget 獲取檔案

linux wget 及 PHP wget 獲取檔案

wget 是一個命令列的下載檔案工具,它支援HTTP,HTTPS和FTP協議,可以使用HTTP代理。Linux使用者經常需要使用它。下此介紹幾個wget使用的技巧。

wget技巧大全:

1>下載 http://www.linux.com 網站上 packs 目錄中的所有檔案
$ wget -r -np -nd http://www.linux.com/packs/

-np 的作用是不遍歷父目錄
-nd 表示不在本機重新建立目錄結構。

2>下載整個http或者ftp站點

$ wget -r -x http://www.linux.com

-x  的作用強制建立伺服器上一模一樣的目錄

這個命令會按照遞迴的下載

伺服器上所有的目錄和檔案,就是下載整個網站。在下載的時候,被下載網站指向的所有地址都會被下載,如果這個網站引用了其他網站,被引用的網站也會被下載下來!!!

注意: 可以用-l number引數來指定下載的層次。例如只下載兩層,那麼使用-l 2。
如: wget -r -x -l 2 http://www.linux.com

3>wget選擇性的只下載某類檔案

$ wget -r -np -nd –accept=iso http://www.linux.com/i386/

–accept=iso 選項,這指示wget僅下載 i386 目錄中所有副檔名為 iso 的檔案。你也可以指定多個副檔名,只需用逗號分隔即可。

4>批量下載
wget -i downloads.txt

如果有多個檔案需要下載,那麼把所有需要下載檔案的地址放到downloads.txt中(每個檔案的URL寫一行),然後 wget 就會自動為你下載所有檔案了。

5>斷點續傳

$ wget -c -t 100 -T 120 http://www.linux.com/big-file.iso

當檔案特別大或者網路特別慢的時候,往往一個檔案還沒有下載完,連線就已經被切斷,此時就需要斷點續傳。wget的斷點續傳是自動的。

-c 選項的作用為斷點續傳。
-t 引數表示重試次數(例如需要重試100次,那麼就寫-t 100,如果設成-t 0,那麼表示無窮次重試,直到連線成功。)
-T 引數表示超時等待時間,例如-T 120,表示等待120秒連線不上就算超時。

6>映象一個網站
$ wget -m -k (-H) http://www.linux.com/

如果網站中的影象是放在另外的站點,那麼可以使用 -H 選項。




在php中,wget還是用到的比較多的,因為有時候會抓一下資源或者圖片等等,
這個時候file_get_contents就不大好用了,而且wget可以設定抓取的次數,時間等等,
這些都是file_get_contents所不具備的,
wget是shell命令,php如果想要呼叫直接用exec()函式就好了。 exec("wget -i xxxxx xxxxx");