我尝试了许多方法来尝试获取url的内容,散列影响输出。我真的不知道如何解释它,但这里有一个例子…
做:echo file_get_contents('test.com/whatever.php?t1=1&t2=2#this');
将返回与
相同的结果echo file_get_contents('test.com/whatever.php?t1=1&t2=2');
即使我在浏览器中导航到它,它也会产生影响。当然,上面的url不是我实际使用的,但我希望你能明白。
我尝试过的事情:
旋度:$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
file_get_contents: file_get_contents($url);
从文件中读:
//don't know where I put the code.
这些都是我尝试过的,除了这里,我真的不知道下一步该去哪里。我真的不确定这是否可能,但我希望它是。
谢谢你的帮助,sh042067
哈希值不发送到服务器。哈希部分通常只能由浏览器访问。您可能会看到某种AJAX检索在起作用,因此您需要找出正在调用的实际URL并使用它。您可以使用Firebug。
找到参考:http://en.wikipedia.org/wiki/Fragment_identifier
检查这些
为什么URL的哈希部分不在服务器端?
我可以在服务器端应用程序(PHP, Ruby, Python等)上读取URL的哈希部分吗?
您的响应将是相同的,因为哈希是在客户端处理的,而不是在服务器端
引自维基百科
片段标识符的功能与URI的其余部分不同:即,它的处理完全是客户端,没有来自服务器的参与——当然,服务器通常会提供帮助来确定MIME类型,而MIME类型确定碎片的处理。当一个代理(比如Web浏览器)从Web服务器请求资源时,代理将URI发送到Web服务器服务器,但不发送片段。相反,代理等待服务器发送资源,然后代理处理资源根据文档类型和片段值。
哈希部分(称为'片段')永远不会发送到服务器。在HTTP协议中没有有效的方法来做到这一点。片段仅用于在页面内的导航,但浏览器请求和接收相同的数据,而不管。
一些站点用JavaScript管理片段,发出异步请求来加载新数据和动态更改页面,这在一定程度上模糊了界限。
在你的情况下,你必须找到有一个id="this"
的页面上的HTML元素,因为这是片段点,它是浏览器将向下滚动到的地方。或者,如果你得到一个片段,看起来像查询变量,你必须找到你试图请求的真实的,非javascript URL。