2014-12-13 69 views
0

之後削減URL我已經找過可能已經有我的答案的問題,但是我沒有找到具體的問題。帶#的URL - > file_get_contents/sockets在#

當我嘗試在URL中獲取帶有'#'的文件內容時,它會在#後面切出部分。

例如:

我想方設法把http://steamcommunity.com/id/Schwabba/inventory/#730內容,但是當我嘗試通過插座或file_get_contents下載它,我得到的是http://steamcommunity.com/id/Schwabba/inventory/

有人知道如何解決這個問題?

謝謝。

回答

2

網址片段(散列後的URL部分)不是通過HTTP處理的,而是由瀏覽器來決定它們的意義。通常,他們正在通過頁面上運行的Javascript讀取 - 在這種情況下 - 然後進一步的AJAX調用來獲取頁面的其餘部分。

+0

什麼是一個很好的方法來做到這一點? – Schwabba 2014-12-13 18:06:20

0

未轉義的#是URL和片段之間的分隔符。片段不是URL本身的一部分,因此不包含在HTTP請求中。片段只對客戶端而不是服務器有意義。例如,當您在網絡瀏覽器中輸入http://steamcommunity.com/id/Schwabba/inventory/#730時,它會請求http://steamcommunity.com/id/Schwabba/inventory/並呈現結果,如果結果爲HTML,則瀏覽器跳轉到標記爲nameid屬性爲730的HTML <a>標記所表示的部分。

所以它是有道理的,爲什麼file_get_contents()忽略片段 - 它應該。下載文件後,您必須決定如何處理片段。片段與正在下載的內容的類型有關。