带#的网址 - > file_get_contents / sockets在#之后剪切URL

时间:2014-12-13 14:03:07

标签: php sockets url file-get-contents fragment-identifier

我已经找到了可能已有答案的问题,但我没有找到具体的问题。

当我尝试使用'#'来获取文件的内容时在URL中,它会删除#。

之后的部分

例如:

我尝试获取http://steamcommunity.com/id/Schwabba/inventory/#730的内容,但当我尝试通过套接字或file_get_contents下载时,我得到的只是http://steamcommunity.com/id/Schwabba/inventory/

有人知道如何解决这个问题吗?

感谢。

2 个答案:

答案 0 :(得分:2)

URL片段(哈希后的URL的一部分)不是通过HTTP处理的,而是由浏览器来构成它们的一些意义。通常它们会被页面上运行的Javascript读取 - 在这种情况下 - 然后进行进一步的AJAX调用以获取页面的其余部分。

答案 1 :(得分:0)

未转义的#是URL和片段之间的分隔符。片段不是URL本身的一部分,因此不包含在HTTP请求中。片段只对客户端有意义,而不是服务器。例如,当您在Web浏览器中键入http://steamcommunity.com/id/Schwabba/inventory/#730时,它会请求http://steamcommunity.com/id/Schwabba/inventory/并呈现结果,如果结果是HTML,则浏览器会跳转到由HTML {{1}表示的部分标记的<a>name属性为id

因此730忽略片段是有道理的 - 它应该是。下载文件后,您必须决定如何处理片段。片段与正在下载的内容类型有关。