Thinkphp请求

请求类型

// 是否为 GET 请求
if (Request::instance()->isGet()) echo "当前为 GET 请求";
// 是否为 POST 请求
if (Request::instance()->isPost()) echo "当前为 POST 请求";
// 是否为 PUT 请求
if (Request::instance()->isPut()) echo "当前为 PUT 请求";
// 是否为 DELETE 请求
if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
// 是否为 Ajax 请求
if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";
// 是否为 Pjax 请求
if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";
// 是否为手机访问
if (Request::instance()->isMobile()) echo "当前为手机访问";
// 是否为 HEAD 请求
if (Request::instance()->isHead()) echo "当前为 HEAD 请求";
// 是否为 Patch 请求
if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
// 是否为 OPTIONS 请求
if (Request::instance()->isOptions()) echo "当前为 OPTIONS 请求";
// 是否为 cli
if (Request::instance()->isCli()) echo "当前为 cli";
// 是否为 cgi
if (Request::instance()->isCgi()) echo "当前为 cgi";
  1. 请求的参数获取

    • GET参数:通过$_GET全局数组获取GET请求的参数。在ThinkPHP中,可以使用input()函数来获取GET参数,如input('param_name')
    • POST参数:通过$_POST全局数组获取POST请求的参数。在ThinkPHP中,同样可以使用input()函数来获取POST参数。
    • 路由参数:如果路由规则中定义了参数,如/news/:id,则可以通过input('id')获取该参数的值。

2. 在ThinkPHP框架中,伪静态是一种常用的URL优化技术,它可以使URL更加友好和可读性更强。伪静态通过将URL中的参数以路径和查询字符串的形式呈现,使得URL更加符合搜索引擎的爬虫规则和用户体验。

'url_html_suffix' => 'shtml'

可以通过设置url_html_suffix参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行 

跳转

在ThinkPHP中,successerror是两个常用的方法,用于处理控制器中的成功和错误情况。

success方法:用于处理成功的情况,通常用于返回成功的响应或重定向到成功页面。它接受一个可选的参数,用于指定成功信息的提示内容。

// 返回成功的响应
return success('操作成功');
// 重定向到成功页面
return success('操作成功', 'Index/index');

error方法:用于处理错误的情况,通常用于返回错误的响应或重定向到错误页面。它接受一个可选的参数,用于指定错误信息的提示内容。

// 返回错误的响应
return error('操作失败');
// 重定向到错误页面
return error('操作失败', 'Index/error');

 

属性注入 

要在ThinkPHP中使用属性注入,需要遵循以下步骤:

  1. 在控制器或服务类中,定义需要注入的属性。通常使用protectedprivate访问修饰符来定义属性。

class UserController extends Controller
{
protected $userService;
}

方法注入 

要在ThinkPHP中使用方法注入,需要遵循以下步骤:

  1. 在控制器或服务类中,定义需要注入的方法。通常使用protectedprivate访问修饰符来定义方法。

class UserController extends Controller
{
protected function getUserService()
{
return new UserService();
}
}

 请求信息

在ThinkPHP中,可以通过request助手函数或Request类的实例来获取当前请求的信息。以下是一些常用的请求信息:

  1. 请求方法(Request Method):可以使用request()->method()request()->getMethod()来获取当前请求的方法,例如GET、POST等。
  2. 请求URL(Request URL):可以使用request()->url()request()->getUrl()来获取当前请求的URL,包括域名、路径和查询参数等。
  3. 请求IP(Request IP):可以使用request()->ip()request()->getIp()来获取当前请求的IP地址。
  4. 请求参数(Request Parameters):可以使用request()->param()request()->getMore()来获取当前请求的参数,包括GET和POST参数。
  5. 请求头(Request Headers):可以使用request()->header()request()->getHeader()来获取当前请求的特定头信息。
  6. 请求的Cookie信息:可以使用request()->cookie()request()->getCookie()来获取当前请求的Cookie信息。
  7. 请求的File信息:可以使用request()->file()request()->getFile()来获取当前请求的File信息。
  8. 请求的输入数据:可以使用request()->param()request()->input()来获取当前请求的输入数据,包括GET、POST和PUT等请求的数据。

请注意,以上方法返回的信息是基于当前请求的,如果请求发生变化,返回的信息也会相应改变。

 

变量过滤

在ThinkPHP中,为了安全性考虑,通常需要对变量进行过滤,以防止潜在的安全漏洞,如跨站脚本攻击(XSS)和SQL注入等。ThinkPHP提供了一些函数和方法来帮助进行变量过滤。

  1. HTML标签过滤:使用htmlspecialchars函数来过滤HTML标签,防止XSS攻击。

$name = '<script>alert("XSS");</script>';
$safe_name = htmlspecialchars($name); // 将特殊字符转换为HTML实体
echo $safe_name; // 输出:&lt;script&gt;alert(&quot;XSS&quot;);&lt;/script&gt;
  1. URL参数过滤:使用urlencode函数或Url::build方法来过滤URL参数,防止SQL注入和其他类似的攻击。

 
$name = 'John O\'Brien';
$safe_name = urlencode($name); // 将特殊字符编码为URL编码
echo $safe_name; // 输出:John+O%27Brien
  1. 字符串过滤:使用strip_tags函数来去除字符串中的HTML和PHP标签。

$description = '<p>This is a <strong>description</strong> with <a href="#">link</a>.</p>';
$safe_description = strip_tags($description); // 去除HTML和PHP标签
echo $safe_description; // 输出:This is a description with link.

变量修饰符 

input函数支持对变量使用修饰符功能,可以更好的过滤变量。

用法如下:

input('变量类型.变量名/修饰符');

Request::instance()->变量类型('变量名/修饰符');

修饰符作用
s强制转换为字符串类型
d强制转换为整型类型
b强制转换为布尔类型
a强制转换为数组类型
f强制转换为浮点类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值