PHP获取请求网址的参数

能够获取用户请求网址的参数,可以做很多有意思的事情,下面举几个例子。

一、知识储备

#测试网址: http://localhost/blog/testurl.php?id=5

//获取域名或主机地址 
echo $_SERVER['HTTP_HOST']."<br>"; #localhost

//获取网页地址 
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

//获取网址参数 
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

//获取用户代理 
echo $_SERVER['HTTP_REFERER']."<br>"; 

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
#http://localhost:80/blog/testurl.php?id=5

//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; 
echo dirname($url);
#http://localhost/blog

二、实例应用

1、301重定向

必应每日一图从jishusongshu.com/bing迁移到了api.szfx.top/bing

在jishusongshu.com/bing文件夹内添加index.php文件

<?php
$url = $_SERVER['PHP_SELF'];
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location: https://api.szfx.top'.$url);//跳转到我的新域名地址
?>

jishusongshu.com/bing/api文件夹内添加index.php文件

<?php
$day = $_GET['day'];
$blur = $_GET['blur'];
$type = $_GET['type'];
$gray = $_GET['gray'];
if(!$day){
    $day=0;
}
$url= 'https://api.szfx.top/bing/api/?day='.$day;
if($blur){
    $url=$url.'&blur='.$blur;
}
if($type){
    $url=$url.'&type='.$type;
}
if($gray){
    $url=$url.'&gray='.$gray;
}
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location:'.$url);//跳转到我的新域名地址
?>

效果:访问jishusongshu.com/bing跳转api.szfx.top/bing/index.php

2、由id打开WP文章

需求分析:资源下载页面添加返回到文章功能,演示页面

https://www.jishusongshu.com/download.php?id=264

<? php
$id = $_GET['id'];
?>
<a href="https://www.jishusongshu.com/?p=<?php echo $id; ?>">返回文章</a>

注:get_the_ID()的WP函数用于获取当前文章id。

3、UA解析获取

user_agent.php文件下载:

https://cloud.jishusongshu.com/drive/php-source/php_user_agent.rar

<?php
include('user_agent.php');
$user_agent = $_SERVER['HTTP_USER_AGENT'];//获取UA代码
$ua = new CI_User_agent($user_agent);
header('Content-type: application/json');
$json_return = [];
$json_return = array( 
  "browser" => $ua->browser(),
  "os" => $ua->platform()
);
echo json_encode($json_return, JSON_UNESCAPED_UNICODE);

返回数组:

{
  browser: "Chrome",
  os: "Windows 8.1"
}

由此搭建的api:https://api.szfx.top/userinfo/

三、参考资料

博客园-阿波罗任-PHP中获取当前页面的完整URL

本文采用 CC BY-NC-SA 3.0 Unported 许可,转载请以超链接注明出处。
原文地址:PHP获取请求网址的参数 作者:松鼠小
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
Source: Telegram @AmashiroNatsukiEars_NoWord Sticker
Source: Github @zhheo/Sticker-Heo
Source: github.com/k4yt3x/flowerhd
颜文字
AmashiroNatsukiEars
Heo
小恐龙
花!
上一篇
下一篇