之前一次CTF的web题全部跟PHP有关,感觉学会PHP代码审计刻不容缓,那么就先从与数组有关的函数开始吧
array_values(array)
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名,被返回的数组将使用数值键,从0开始并以1递增
array_keys(array, value, strict)
array_keys() 函数返回包含数组中所有键名的一个新数组
参数 | 描述 |
---|---|
array | 必需 规定数组 |
value | 可选 您可以指定键值,然后只有该键值对应的键名会被返回。 |
strict | 可选 与 value 参数一起使用。可能的值:true(依赖类型)、false(不依赖类型) |
in_array(search, array, type)
in_array() 函数搜索数组中是否存在指定的值,如果search
参数是字符串且type
参数被设置为TRUE
,则搜索区分大小写
array_flip(array)
array_flip() 函数用于反转/交换数组中的键名和对应关联的键值,如果同一个值出现了多次,则取最后一个键名作为它的值,如果原数组中的值不是字符串或者整数,函数将报错
array_reverse(array, preserve)
array_reverse() 函数的作用是将原数组中的元素顺序翻转,创建新的数组并返回,如果第二个参数为TRUE
,那么反转顺序的数组保留原数组的键名
count(array, mode)
count() 函数返回数组中元素的数目,mode参数为1时,递归返回多维数组中的元素个数
array_count_values(array)
array_count_values() 函数用于统计数组中所有值出现的次数
array_unique(array)
array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除
array_filter(array, function)
array_filter() 函数用回调函数function过滤数组中的值
array_push(array, value1, value2…)
array_push() 函数向数组尾部插入一个或多个元素
array_pop(array)
array_pop() 函数删除数组中的最后一个元素
array_shift(array)
删除数组中的第一个元素,并返回被删除元素的值
array_walk(array, function, parameter)
array_walk() 函数对数组中的每个元素应用用户自定义的函数。
array_map(myfunction, array1, array2…)
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组
array_slice(array, n, m)
从数组的第n个元素开始取出,并返回m个元素
n为负数表示从后往前,没给定m则默认到最后
array_splice()
array_splice() 函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组
array_combine()
array_combine() 函数将两个数合并创建新数组,其中一个数组包含键,另一个数组包含值,如果元素数量不对应或者为0,那么返回false
array_merge(array1, array2…)
array_merge() 函数把一个或多个数组合并为一个数组,如果键重复,后面覆盖前面
array_intersect(array1, array2…)
array_intersect() 函数用于比较两个(或更多个)数组,并返回交集
array_diff(array1, array2)
array_intersect() 函数用于比较两个数组,并返回差集(array1-array2)
array_rand(array, number)
array_rand() 函数从数组中随机选出一个或多个元素返回
array_sum(array)
array_sum() 函数返回数组中所有值的和,值都是整数则返回整数,有一个值是浮点数则返回浮点数
shuffle(array)
shuffle() 函数把数组中的元素按随机顺序重新排列,如果成功则返回 TRUE,如果失败则返回 FALSE
range(low, high, step)
range() 函数创建一个包含指定范围的元素的数组
排序函数
函数 | 说明 |
---|---|
sort() | 对数组元素进行升序排序 |
rsort() | 对数组元素进行降序排序 |
asort() | 对数组元素进行升序排序,并保持索引关系 |
arsort() | 对数组元素进行降序排序,并保持索引关系 |
ksort() | 按照数组的键值对数组进行升序排序,并保持索引关系 |
krsort() | 按照数组的键值对数组进行降序排序,并保持索引关系 |