2024-11-21-PHPBaseFun

2024-11-21-PHPBaseFun

十一月 21, 2024

PHP的一些基础函数记录

由于不常用PHP写项目,在CTF WEB 方向中经常使用PHP的各种函数,使用过程中经常忘记用法甚至陌生,导致源码审计收到阻碍,故在此记录一些PHP的常用函数。


json_decode() 用于将 JSON 格式的字符串转换为 PHP 变量。通常用于从 JSON 数据中解析出数组或对象,以便在 PHP 中进一步处理。

1
json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0): mixed
  • $json (string):要解码的 JSON 字符串。
  • $assoc (bool):如果设为 true,返回关联数组;如果设为 false(默认值),返回对象。
  • $depth (int):设置递归的最大深度,默认是 512。
  • $options (int):设置解码选项,常用的值有 JSON_BIGINT_AS_STRING 等。

example:

1
2
3
$json = '{"person": {"name": "John", "age": 30}, "address": "New York"}';
$data = json_decode($json, true);
echo $data['person']['name']; // 输出 "John"

isset()用于检查一个变量是否已经被设置并且值不为 NULL。它返回一个布尔值,true 表示变量已被设置并且不是 NULL,否则返回 false

1
isset(mixed $var, mixed ...$vars): bool
  • $var:需要检查的变量。
  • $vars:可选的,检查多个变量。

ini_set 函数用于设置 PHP 配置选项,允许你在运行时修改 PHP 配置值。

1
ini_set(string $varname, string $newvalue): string|false
  • $varname:配置选项的名称(例如:display_errorsmax_execution_time)。
  • $newvalue:设置的新值。

example:

1
ini_set("allow_url_include","on");  // 设置allow_url_include为打开

作用:允许 PHP 通过 URL 引入文件。


header() 函数用于发送原始 HTTP 头信息。可以通过它来设置响应头,例如重定向、设置内容类型、缓存控制等。 规则:header() 函数必须在输出任何内容之前调用。

  • $header:要发送的 HTTP 头信息。
  • $replace:如果为 true,则替换掉已存在的相同头;如果为 false,则不会替换。
  • $response_code:设置响应的 HTTP 状态码。
1
header(string $header, bool $replace = true, int $response_code = 0): void

example:

1
2
header("Content-type: text/html; charset=utf-8"); 
设置内容类型为 text/html 字符编码集为utf-8