聘我网

新概念招聘3.0

如何Perl重写这个PHP函数?

vote up0vote downstar
function setURI($args) {
    if (($pos = strpos($_SERVER['REQUEST_URI'], '?')) === false) {
        $path = $_SERVER['REQUEST_URI'];
        $query = array();
    } else {
        $path = substr($_SERVER['REQUEST_URI'], 0, $pos);
        parse_str((string) substr($_SERVER['REQUEST_URI'], $pos+1), $query);
    }
    foreach ($args as $key => $val) {
        if(null === $val)
            unset($query[$key]);
        else
            $query[$key] = $val;
    }
    return $path . (!empty($query) ? '?'.http_build_query($query) : '');
}

这个函数用来在当前url基础上改变一些参数,比如用在分页的链接里,Perl中如何实现这个函数?

 

1 个答复

vote up0vote downcheck
use CGI;
use URI qw();
use URI::QueryParam qw();

sub generate_uri {
        my (%hash) = @_;
        my $query = CGI->new;
        my $u = URI->new($query->self_url);
        while( my($k, $v) = each (%hash)){
                $u->query_param($k => $v);
        }
        $u->as_string;
}

print generate_uri((a => 1, b => 2));
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.