1

问题 我已经使 for 循环减少,但价值$k并没有以相反的方式出现。下面是正在运行以使其正常工作的代码,任何帮助都会很棒。

基本上正在处理 iFrame,我想获取父 URL 数据,因为我正在使用$_SERVER['HTTP_REFERER']。我完美地获得了父 URL,但是当我打破字符串时,我希望它以相反的方式出现。请看下面的实际和期望的结果。

网址: http ://www.example.net/home?game_id=MyTeam11game_type=activity&auth=success

代码

$mainurl = array();
$mainurl = parse_url($_SERVER['HTTP_REFERER']);
$mainurl = array_slice($mainurl, 3, true);
$mainurl = $mainurl['query'];
$mainurlArr = explode('&', $mainurl);
for($k=count($mainurlArr)-1; $k>=0; $k--){
    echo $mainurlArr[$k].' ,pos=> '.$k."<br />";
}

实际输出

auth=success ,Actual pos=> 2
game_type=activity ,Actual pos=> 1
game_id=Pranavs%20running12 ,Actual pos=> 0

期望的输出

auth=success ,Actual pos=> 0
game_type=activity ,Actual pos=> 1
game_id=Pranavs%20running12 ,Actual pos=> 2
4

3 回答 3

2
for($k=count($mainurlArr)-1, $i=0; $k>=0; $k--,$i++){
    echo $mainurlArr[$k].' ,pos=> '.$i."<br />";
}
于 2013-07-17T17:15:53.290 回答
0

这应该有效:

$start = count($mainurlArr)-1;

for($k=$start; $k>=0; $k--){
    echo $mainurlArr[$k].' ,pos=> '.($start - $k)."<br />";
}

(你可能需要换成$k - $start,因为它让我试图解决它让我头疼)

它从总数中减去当前索引,并显示它。我在循环外初始化它以保存几个函数调用,并使代码更整洁。

于 2013-07-17T17:19:56.137 回答
0

我已经设法解决了这个问题,这是我正在寻找的解决方案。谢谢您的帮助。

$mainurl = array();
$mainurl = parse_url($_SERVER['HTTP_REFERER']);
$mainurl = array_slice($mainurl, 3, true);
$mainurl = $mainurl['query'];
$mainurlArr = explode('&', $mainurl);

$m = count($mainurlArr)-1;
for($k=count($mainurlArr)-1; $k>=0; $k--){
    if($k == $m){
        $auth = substr($mainurlArr[$m],5);
        $_REQUEST['auth'] = $auth;
    }elseif($k == $m-1){
        $game_type = substr($mainurlArr[$m-1],10);
        $_REQUEST['game_type'] = $game_type;
    }elseif($k == $m-2){
        $game_id = substr($mainurlArr[$m-2],8);
        $_REQUEST['game_id'] = $game_id;
    }
}
于 2013-07-18T08:13:22.193 回答