PHP获取当前网页的地址及附带的参数等

本文介绍如何使用PHP和JavaScript来获取和处理URL的各种组件,包括获取域名、网页地址、参数等,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

javascript实现:

top.location.href   顶级窗口的地址
this.location.href  当前窗口的地址


### 获取企业微信当前用户的 `userid` 为了实现从企业微信获取当前登录用户的 `userid`,通常采用 OAuth2.0 授权机制。此方法允许开发者通过特定 URL 链接(如自定义菜单或消息中心内的链接)引导用户访问授权页面,在完成授权过程后可获得该用户的唯一标识符即 `userid`。 #### 使用 PHP 实现获取 `userid` 的流程 首先需构建一个重定向至企业微信官方服务器用于请求权限的链接: ```php <?php $corpid = &#39;CorpID&#39;; // 替换成自己的 CorpID $redirect_uri = urlencode(&#39;http://yourdomain.com/callback.php&#39;); // 回调地址需要urlencode编码处理 $state = uniqid(); // 设置 state 参数防止CSRF攻击并可用于传递额外信息 echo "<a href=&#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid={$corpid}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_base&state={$state}#wechat_redirect&#39;>点击这里</a>"; ?> ``` 当用户点击上述生成的链接后会被导向到企业微信平台进行身份验证。一旦同意授权,则会跳转回指定回调页,并附带临时票据 `code` 及之前设置的状态参数 `state`。 接着在回调脚本中利用得到的 `code` 向企业微信 API 发起 POST 请求交换永久凭证以及目标 `userid`: ```php <?php // callback.php 文件内容如下 if (isset($_GET[&#39;code&#39;])) { $code = $_GET[&#39;code&#39;]; $url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={ACCESS_TOKEN}&code={$code}"; function get_access_token(){ global $corpid,$corpsecret; $token_url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corpid}&corpsecret={$corpsecret}"; $res = json_decode(file_get_contents($token_url),true); return $res["access_token"]; } $access_token=get_access_token(); $result=json_decode(file_get_contents($url)); echo "User ID is:".$result->UserId; // 输出 userid } ?> ``` 注意:以上代码片段中的 `{ACCESS_TOKEN}` 应替换为企业实际有效的 access token 或者动态获取最新有效令牌后再拼接到请求路径里[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值