1

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

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

itemid=537600240%3fusername%3d& 

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

我只需要在 ? 或 %3f。需要帮助请

4

4 回答 4

0

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

于 2013-10-16T18:17:01.133 回答
0

我认为当您在标题链接中连接值时出现问题

它应该是

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

获取值

$id=$_GET['id'];
$name=$_GET['name'];
于 2013-10-16T18:22:28.133 回答
0

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

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

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

%3f是一个 urlencoded?并且%3d是一个 urlencoded =,我假设您的浏览器正在尝试将您损坏的 URL 变成一个健全的 URL。

此外,任何时候您需要包含本身可能包含特殊字符(如?&=#等)的数据时,您应该首先传递该数据,urlencode()然后再将其附加到查询字符串,以免遇到意外行为。

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

于 2013-10-16T18:23:13.293 回答
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

于 2013-10-16T18:30:37.660 回答