如何使用%3f%3d在浏览器中提取变量

时间:2013-10-16 18:05:39

标签: php html web-services browser

我正在将我的页面重定向到另一个页面,当我转到结果时,它没有显示数据。

当我检查我的浏览器时,它会显示这样的变量

itemid=537600240%3fusername%3d& 

我需要提取itemid=537600240但是当我尝试这样做时,它就会提升 itemid=537600240?fusername

我之前只需要价值?或%3f。需要帮助

4 个答案:

答案 0 :(得分:0)

获取整个值为itemid = 537600240?fusername并使用explode函数获取之前的值?登录。

答案 1 :(得分:0)

我认为在标题链接

中连接值时会出现问题

应该是

http:/mypage/index.php?id=$id&name=$name

获取值

$id=$_GET['id'];
$name=$_GET['name'];

答案 2 :(得分:0)

您似乎错误地构建了重定向网址。正确的URI和查询字符串格式应为:

http://domain.com/dir/script.php?var1=foo&var2=bar&var3=baz

?只出现一次,以分隔URI的路径部分的结尾和查询字符串的开头。 &应该用于分隔各个查询变量。

%3f是一个urlencoded ?,而%3d是一个urlencoded =,我认为您的浏览器正在尝试将您的网址设置为理智的网址。< / p>

此外,只要您需要包含可能包含特殊字符的数据,例如?&=#等,您应首先传递数据通过urlencode()传递给查询字符串,以便您不会遇到意外行为。

无论如何,一旦你解决了这个问题,你应该在$_GET中获得正确的值,而不必进行任何额外的处理。

答案 3 :(得分:0)

您可以使用正则表达式:

<?php

    $var = 'itemid=537600240%3fusername%3d& ';

    $regex = '/itemid=[0-9]+/';

    preg_match ( $regex, $var, $result);

    echo $result[0];

?>

在线测试:http://ideone.com/SMho8e

或者,如果您只想要整数值,请更改正则表达式和结果,如下所示:

<?php

    $var = 'itemid=537600240%3fusername%3d& ';

    $regex = '/itemid=([0-9]+)/';

    preg_match ( $regex, $var, $result);

    echo $result[1];

?>

在线测试:http://ideone.com/AIIna8