如何从网址获取数据?

时间:2014-01-09 16:11:29

标签: php variables url

我如何从变量中获取此URL的代码?

http://www.site.com/#code=123

我试过了:

if (isset($_GET['code'])){
   $code = $_GET['code']; 
}

但api会返回#而不是&还是?

我用javascript找到了一种感谢大家的方式

<script>
var hash = false;
checkHash();

function checkHash(){
    if(window.location.hash != hash) {
        hash = window.location.hash;
        processHash(hash);
    } t=setTimeout("checkHash()",400);
}

function processHash(hash){

    window.location.href = "code.php?code=" + hash.substr(7);

}

3 个答案:

答案 0 :(得分:1)

你能用PHP试试吗,

 $url=parse_url("http://www.site.com/#code=123");
 echo $fragment =  $url["fragment"];//code=123
 if($fragment!=""){
    list($codeName, $codeValue) = @explode("=", $fragment);
    echo $codeValue; //123
 }

参考:http://in3.php.net/parse_url

答案 1 :(得分:1)

hashtag片段不是HTTP协议的一部分,仅作为单个页面内的方向的客户端。你不能用PHP解析它,因为它不能作为请求通过网络发送。

http://www.w3.org/TR/WD-html40-970708/htmlweb.html

片段网址

  

本文档编写时的URL规范   ([RFC1738])提供了一种引用资源的机制,但不提供引用资源的机制   资源中的位置。 Web社区采用了一种约定   称为“片段URL”以引用HTML文档中的锚点。一个   片段URL以“#”结尾,后跟锚标识符。对于   实例,这是一个指向名为锚的片段URL   section_2:

您说API会返回此网址。考虑保存在变量$url中的网址,您可以从$url = parse_url($url);开始使用Krish R的答案。

如果你想从URL加载内容,那么兔子会像file_get_contents('http://www.site.com/');那样 - 如上所述,因为hashtag不是HTTP的一部分。

答案 2 :(得分:0)

我认为您的PHP没问题,但网址似乎很奇怪。在url中第一个'key = value'之前应该有一个?符号