CTF(web)中的常见php函数意义与用法

is_numeric() 函数用于检测变量是否为数字或数字字符串, 如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回空值,即 FALSE

 

var_dump()会返回数据变量的类型和值

 

eval()会把字符串当作php代码

看到eval(),想到可以用命令执行漏洞

 

strpos() 函数用于在字符串内查找一个字符或一段指定的文本,如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

 

strlen函数:用于返回字符串的长度

 

htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

语法:htmlspecialchars(string,flags,character-set,double_encode)

参数

描述

string

必需。规定要转换的字符串。

flags

可选。规定如何处理引号、无效的编码以及使用哪种文档类型。

可用的引号类型:

ENT_COMPAT - 默认。仅编码双引号。

ENT_QUOTES - 编码双引号和单引号。

ENT_NOQUOTES - 不编码任何引号。

无效的编码:

ENT_IGNORE - 忽略无效的编码,而不是让函数返回一个空的字符串。应尽量避免,因为这可能对安全性有影响。

ENT_SUBSTITUTE - 把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD; 的字符,而不是返回一个空的字符串。

ENT_DISALLOWED - 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。

规定使用的文档类型的附加 flags:

ENT_HTML401 - 默认。作为 HTML 4.01 处理代码。

ENT_HTML5 - 作为 HTML 5 处理代码。

ENT_XML1 - 作为 XML 1 处理代码。

ENT_XHTML - 作为 XHTML 处理代码。

character-set

可选。一个规定了要使用的字符集的字符串。

允许的值:

UTF-8 - 默认。ASCII 兼容多字节的 8 位 Unicode

ISO-8859-1 - 西欧

ISO-8859-15 - 西欧(加入欧元符号 + ISO-8859-1 中丢失的法语和芬兰语字母)

cp866 - DOS 专用 Cyrillic 字符集

cp1251 - Windows 专用 Cyrillic 字符集

cp1252 - Windows 专用西欧字符集

KOI8-R - 俄语

BIG5 - 繁体中文,主要在台湾使用

GB2312 - 简体中文,国家标准字符集

BIG5-HKSCS - 带香港扩展的 Big5

Shift_JIS - 日语

EUC-JP - 日语

MacRoman - Mac 操作系统使用的字符集

注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。

double_encode

可选。一个规定了是否编码已存在的 HTML 实体的布尔值。

TRUE - 默认。将对每个实体进行转换。

FALSE - 不会对已存在的 HTML 实体进行编码。

 

预定义的字符是:

& (和号)成为 &

" (双引号)成为 "

' (单引号)成为 '

< (小于)成为 &lt;

          > (大于)成为 &gt;

 

 

 

substr() 函数返回字符串的一部分: 

语法: substr(string,start,length) 

参数

描述

string

必需。规定要返回其中一部分的字符串。

start

必需。规定在字符串的何处开始。

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾的指定位置开始

0 - 在字符串中的第一个字符处开始

length

可选。规定要返回的字符串长度。默认是直到字符串的结尾。

正数 - 从 start 参数所在的位置返回

负数 - 从字符串末端返回

 

 

 

file_get_contents() 把整个文件读入一个字符串中,该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能( php://input 绕过file_get_contents)

语法:file_get_contents(path,include_path,context,start,max_length)

参数

描述

path

必需。规定要读取的文件。

include_path

可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 '1'。

context

可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。

start

可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。

max_length

可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。

 

eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。Eregi()可以特别有用的检查有效性字符串,如密码。 

可选的输入参数规则包含一个数组的所有匹配表达式,他们被正则表达式的括号分组。

返回值:如果匹配成功返回true,否则,则返回false

 

 

explode() 函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组

语法: explode(separator,string,limit)

 

参数

描述

separator

必需。规定在哪里分割字符串。

string

必需。要分割的字符串。

limit

可选。规定所返回的数组元素的数目。

可能的值:

大于 0 - 返回包含最多 limit 个元素的数组

小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组

0 - 会被当做 1, 返回包含一个元素的数组

 

 

highlight_file() 函数对文件进行 PHP 语法高亮显示。

语法通过使用 HTML 标签进行高亮。

语法:highlight_file(filename,return)

• filename: 必需。规定要显示的文件。

• return :可选。 如果该参数设置为 TRUE,该函数将以字符串形式返回高亮显示的代码,而不是直接进行输出。 默认是 FALSE。

返回值:如果 return 参数设置为 TRUE,该函数将以字符串形式返回高亮显示的代码,而不是直接进行输出。否则,如果成功则返回 TRUE,如果失败则返回 FALSE。

 

 

preg_match 函数用于执行一个正则表达式匹配。

语法:int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

• 参数说明:

$pattern: 要搜索的模式,字符串形式。

 $subject: 输入字符串。

 $matches: 如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

 $flags:flags 可以被设置为以下标记值:

     PREG_OFFSET_CAPTURE: 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。 注意:这会改变填充到matches参数的数            组,使其每个元素成为一个由 第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。

offset: 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。

• 返回值

 返回 pattern 的匹配次数。

 它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后 将会停止搜索。

 preg_match_all() 不同于此,它会一直搜索subject 直到到达结尾。

 如果发生错误preg_match()返回 FALSE。

 

 

isset函数是检测变量是否存在。

若变量不存在则返回 FALSE

若变量存在且其值为NULL,也返回 FALSE

若变量存在且值不为NULL,则返回 TURE

同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALS

 

 

urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。

urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符

 

sha1() 函数计算字符串的 SHA-1 散列。sha1() 函数使用美国 Secure Hash 算法 1。

语法:sha1(string,raw)

参数描述:

string    必需。规定要计算的字符串。

raw        可选。规定十六进制或二进制输出格式:

                TRUE - 原始 20 字符二进制格式

                 FALSE - 默认。40 字符十六进制数

 

 

extract()函数用于从一个date或者interval类型中截取到特定的部分,获取两个日期之间的具体时间间隔,extract函数是最好的选择

 

empty() 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

 

 

首先我们经常见到的 trim() 经常和toString()合用,作用是取出空格,因为有时候用户输入信息的时候,可能会过多的填写空格,或者有些时候就使用空格做为数据了,结果造成程序出错~为了使我们的数据紧凑并且不会出现空格错误 我们就需要使用到trim()函数了。Trim() 函数的功能是去掉首尾空格,在编程中发现使用if(EditText02.getText().toString()!="")不能正确判断是否为空,调试后发现是莫名空格的原因,使用trim()函数后解决。

ord() 函数:返回字符串 string 第一个字符的 ASCII 码值

chr函数:返回相对应于 ascii所指定的单个字符

base64_encode()函数:将其中内容进行base64编码,对应的解码函数为base64_decode()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin_xiao~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值