我正在将我的页面重定向到另一个页面,当我转到结果时,它没有显示数据。
当我检查我的浏览器时,它会显示这样的变量
itemid=537600240%3fusername%3d&
我需要提取itemid=537600240
但是当我尝试这样做时,它就会提升
itemid=537600240?fusername
。
我之前只需要价值?或%3f。需要帮助
答案 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];
?>
或者,如果您只想要整数值,请更改正则表达式和结果,如下所示:
<?php
$var = 'itemid=537600240%3fusername%3d& ';
$regex = '/itemid=([0-9]+)/';
preg_match ( $regex, $var, $result);
echo $result[1];
?>