原生PHP如何获取当前页面URL

方法一:
//php获取当前访问的完整url地址
function get_current_url(){
    $current_url='http://';
    if(isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']=='on'){
        $current_url='https://';
    }
    if($_SERVER['SERVER_PORT']!='80'){
        $current_url.=$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'];
    }else{
        $current_url.=$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    }
    return $current_url;
}
方法二:
$url  =  $_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':"?");  // 判断是否存在 '?'
    $parse = parse_url($url);
    if(isset($parse['query'])) {
            parse_str($parse['query'],$params);    // 将 parse['query'] 里的值存到 params 里
            $url   =  $parse['path'].'?'.http_build_query($params);    // 生成请求的 url
    }

其中的strpos方法是查找 某个字符串首次出现的位置,不存在是返回 false。

parse_url 方法是解析 url 返回组成部分,返回值是一个数组:

$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);

输出为:
Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

http_build_query(),生成 url 后面的请求字符串:

$data = array("name"=>"callback" , "value"=>"test");
$rescult = http_build_query($data);

我们输出下$rescutl可以得到:
name=callback&value=test


猜你喜欢

转载自blog.csdn.net/weixin_42266757/article/details/80638561