其實防盜鏈這個技術並不複雜,目前基本就是在服務器端判斷HTTP_REFERER的位置,若是不是來自本站自身,則拒絕輸出詳細。php
那麼若是考慮突破防盜鏈的措施,就須要考慮在HTTPREFERER上面作手腳了。PHP 腳本中對應的變量是$SERVER['HTTPREFERER'] ,它存儲了 HTTPREFERER 的值。html
因爲直接訪問目標URL資源已經被上述防盜鏈的措施給屏蔽,因此咱們須要個相似網關的玩意去獲取。說白了就是編寫已經包裝過的HTTP頭的 PHP 腳本。服務器
下面是簡單的函數實現:socket
這是個比較簡單的函數,其功能就是僞造 Referer (使用 streamcontextcreate 函數 )而後獲取對方的數據(使用 filegetcontents,須要開啓 allowurlfopen )。函數
若是想「複雜」一點,能夠使用 sockets 擴展 ,這不在這裏的討論範圍之內。url
另外,再提供個獲取主機名的正則函數spa
再進一步的擴展,能夠封裝成腳本,而後譬如調用xml
就能夠獲取那些開啓防盜鏈措施的連接了。htm