2

我即将制作一个自动放置&pni=somethingURL 的系统。如果 url 只是带有“?pni=....”的http://t.co/something.php会很容易,但用户也可以拥有http://t.co/something.php?myown=paramater然后系统应该添加&而不是?

如何将pni参数放在 URL 后面并且每次都有效?我试过这个没有运气。

<?php
function nice($in){
  $out = parse_url($in);
  return $out['scheme'] . "://" . $out['host'] . $out['path'] . "?" . $out['query'];
}

$urls = array(
  "http://t.co/something.php?w=23&",
  "http://t.co/something.php?w=23&dfdf=",
  "http://t.co/something.php?",
  "http://t.co/something.php",
  "http://t.co/something",
  "http://t.co/something.php?w=23&dfdf=34&hvem",
);

foreach ( $urls as $url):
  echo print_r(nice($url)) . "<br/>";
endforeach;
?>
4

3 回答 3

5
function nice($in) {
    $out = parse_url($in);
    if ($out['query'] != "") {
        $out['query'] = "pni=something&".$out['query'];
    }
    else { 
      $out['query'] = "pni=something";
    }

    return $out['scheme'] . "://" . $out['host'] . $out['path'] . "?" . $out['query'];
}
于 2013-05-01T13:51:12.920 回答
0

您可以使用专门访问查询字符串

$_SERVER['QUERY_STRING']

如果它是空的,你可以使用

$url .= '?arg=val';

如果查询字符串是 ! 空的

$url .= '&arg=val';
于 2013-05-01T13:50:49.780 回答
0

"?"检查网址中是否有任何内容并相应pni=something地连接它。

function nice($url){
    if(strpos($url,"?")!==false){
        return $url."&pni=something";
    }else{
        return $url."?pni=something";
    }
}
于 2013-05-01T13:53:22.960 回答