- php通常作为服务端语言为web或者客户端app以接口的形式提供服务,虽然php语言支持在php中写前端html和form表单等,但是在通常的开发中都是前端和后端分离,即前端使用html,vue,ios,Android等去实现,通过接口和php服务端进行交互,在交互的过程中,php需要获取接口协议类型,接口协议请求方法,接口请求参数,接口协议header配置属性等,所以此处关键点不在表单的实现,而是php作为后端如何处理上面的几种数据逻辑。
- php读取接口协议方法和header数据的方式
- 通过php的超全局变量$_SERVER获取到和服务器相关的许多信息,包括服务器协议,方法,header等。
- $_SERVER能获取到的服务器相关属性整理:
$_SERVER['PHP_SELF']:当前执行脚本的文件名,与 document root 有关 例如,在地址 为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得 到 /test.php/foo.bar。 $_SERVER['SERVER_ADDR']:当前运行脚本所在的服务器的 IP 地址 $_SERVER['SERVER_PROTOCOL']:请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。 $_SERVER['REQUEST_METHOD']: 访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。 $_SERVER['HTTP_REFERER']:引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。) $_SERVER['REMOTE_ADDR']:浏览当前页面的用户的 IP 地址。 其他具体的可以参考下面的参考文章。 $userAgent = $_SERVER['HTTP_USER_AGENT']; echo "The user agent is: " . $userAgent; $ipAddress = $_SERVER['REMOTE_ADDR']; //获取用户接口的ip地址 $method = $_SERVER['REQUEST_METHOD']; //获取接口的请求方法- 使用apache_request_headers()函数来获取所有的HTTP请求头(仅限apache服务器)
- 使用get_headers()函数来获取远程URL头部信息(前提当前服务器支持以此方式获取)
$url = "http://www.example.com"; $headers = get_headers($url); foreach ($headers as $header) { echo $header . "<br />\n"; }
- 通过php的超全局变量$_SERVER获取到和服务器相关的许多信息,包括服务器协议,方法,header等。
- php读取接口参数的方法
- 使用超全局变量
_GET等全局变量来获取HTTP请求参数(对应的get和post请求方法)
- 当接收JSON参数时,无法直接使用这些全局变量,因为JSON参数是作为请求体的一部分发送的。可以通过PHP的file_get_contents函数来获取请求体的内容
- PHP提供了一些数据过滤函数,如filter_input、filter_var等,可以用来过滤和验证输入的数据。可以使用filter_input函数来获取JSON参数
- 当前端发送JSON参数时,会在请求头中设置Content-Type为application/json。可以通过检查$_SERVER[‘CONTENT_TYPE’]来确定请求的数据类型
- php提供了fiter一系列函数对获取到的参数进行过滤和校验,可以直接操作接口api传递过来的参数,也可以通过上面描述的方法获取到对应的参数后自己写逻辑对参数进行校验和处理。
- 使用超全局变量
- php读取接口协议方法和header数据的方式
- php处理cookie:php针对cookie的处理:
//设置cookie <?php setcookie("user", "runoob", time()+3600); ?> <?php $expire=time()+60*60*24*30; setcookie("user", "runoob", $expire); ?> // 查看cookie <?php // 输出 cookie 值 echo $_COOKIE["user"]; // 查看所有 cookie print_r($_COOKIE); ?> // 删除cookie <?php // 设置 cookie 过期时间为过去 1 小时 setcookie("user", "", time()-3600); ?> - php处理session:php对seesion的处理:
//开始session
<?php session_start(); ?>
// 存储session
<?php
session_start();
// 存储 session 数据
$_SESSION['views']=1;
?>
// 删除session
<?php
session_start();
if(isset($_SESSION['views']))
{
unset($_SESSION['views']);
}
?>
<?php
session_destroy();
?>
参考文章:
php api 参数的读取方式
php api 获取header的几种方式
php api获取header的几种方式(文心快码)
自定义验证api参数
参数常见的几种校验:名称,邮件,url
php过滤器
php 高级过滤器
php filter 文档






网友评论