2014-12-13 75 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()忽略片段 - 它应该。下载文件后,您必须决定如何处理片段。片段与正在下载的内容的类型有关。