向php传入参数的方法有哪些

发布时间:2021-11-29 14:01:51 作者:iii
来源:亿速云 阅读:184
# 向PHP传入参数的方法有哪些

在PHP开发中,参数传递是实现动态功能的核心技术之一。本文将详细介绍6种常见的参数传递方式,涵盖GET/POST请求、命令行参数、Session/Cookie等场景,并附上代码示例说明其使用方法和注意事项。

## 一、通过URL的GET方法传参

GET是最基础的传参方式,参数直接附加在URL后,格式为`?key1=value1&key2=value2`。

```php
// 示例URL:http://example.com?name=John&age=25
$name = $_GET['name']; // 获取"John"
$age = $_GET['age'];   // 获取"25"

特点: - 参数可见于地址栏 - 有长度限制(约2048字符) - 适合非敏感数据的简单传递

安全提示:

// 必须过滤输入
$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_STRING);

二、通过POST方法传参

POST通过HTTP请求体传递数据,不可见于URL,适合提交表单或敏感信息。

// 接收表单数据
$username = $_POST['username'];
$password = $_POST['password'];

// 更安全的获取方式
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

与GET的区别: 1. 无URL长度限制 2. 支持文件上传 3. 数据不会出现在浏览器历史

三、通过COOKIE传参

Cookie在客户端存储数据,每次请求自动发送到服务器

// 设置Cookie
setcookie("user", "Alice", time()+3600);

// 读取Cookie
if(isset($_COOKIE["user"])) {
    echo "Welcome ".$_COOKIE["user"];
}

注意事项: - 每个Cookie≤4KB - 需要先设置再访问 - 敏感数据应加密存储

四、通过SESSION传参

Session数据存储在服务器端,通过Session ID关联客户端。

// 启动Session
session_start();

// 存储数据
$_SESSION['cart'] = ['item1', 'item2'];

// 读取数据
print_r($_SESSION['cart']);

优势: - 比Cookie更安全 - 可存储较大数据 - 支持复杂数据类型

五、命令行参数(CLI模式)

在命令行执行PHP脚本时传递参数:

php script.php arg1 arg2

PHP获取方式:

// $argv[0]是脚本名
$first_arg = $argv[1] ?? null; // arg1
$second_arg = $argv[2] ?? null; // arg2

// 另一种方式(长选项)
// php script.php --name=John
$options = getopt("", ["name:"]);
echo $options['name']; // 输出John

六、通过HTTP请求头传参

适用于API开发等场景:

// 获取特定请求头
$token = $_SERVER['HTTP_AUTHORIZATION'] ?? '';

// 所有请求头(需要apache_request_headers()函数)
$headers = getallheaders();
$customHeader = $headers['X-Custom-Header'] ?? '';

七、其他传参方式

1. 文件上传参数

$file = $_FILES['userfile'];

2. PUT/DELETE请求

// 需要解析输入流
parse_str(file_get_contents("php://input"), $putData);

安全建议

  1. 始终验证输入

    $email = filter_var($_POST['email'], FILTER_VALIDATE_EML);
    
  2. 使用预处理语句防SQL注入

    $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
    $stmt->execute([$email]);
    
  3. 敏感数据使用HTTPS传输

总结对比表

方式 存储位置 大小限制 安全性 典型应用场景
GET URL ~2KB 搜索参数、分页
POST 请求体 表单提交、登录
COOKIE 客户端 4KB 用户偏好设置
SESSION 服务器 用户登录状态
命令行参数 命令行 系统限制 定时任务、脚本工具
HTTP头 请求头 API认证、跨域请求

根据具体业务需求选择合适的传参方式,并始终牢记安全防护原则。 “`

推荐阅读:
  1. Mybatis如何传入多个参数
  2. 向php传入参数的两种方法在命令行执行

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:Redis在真实世界的5个用法分别是什么

下一篇:C/C++ Qt TreeWidget单层树形组件怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》