Nov212020
php读取目录并列表显示目录中的文件的函数
返回结果更友好更实用的方法请参考:
php循环获取目录以及所有子目录中的所有文件
自己总结的一个返回所查询的目录下的文件以及文件夹的列表数组的函数。数组中会区分文件是否为目录或者文件,以及所查询目录下的目录总数和文件总数。废话不多说,代码如下:
/*
* author : www.phpernote.com
* param string $dir 目录名称
* return array $dirList 查询结果数组
*/
function listDir($...阅读全文
抢沙发
Nov152020
php二维数组按其中某一列排序
php二维数组按其中某一列排序。
<?php
$data = [
    ['name' => '张三', 'age' => '20', 'score' => '78'],
    ['name' => '李四', 'age' => '21', 'score' => '78'],
    ['name' => '王五', 'age' => '20', 'score' => '60'],
    ['name' => '大强子', 'age' => '26', 'score' => '100']
];
// 将数据根据 score 降序排列
array_multisor...阅读全文
Nov132020
攻防世界-web-love_math(base_convert进制转换绕过白名单和长度限制)
题目来源:CISCN题目描述:解密
进入界面
<?php
error_reporting(0);
//听说你很喜欢数学,不知道你是否爱它胜过爱flag
if(!isset($_GET['c'])){
    show_source(__FILE__);
}else{
    //例子 c=20-1
    $content = $_GET['c'];
    if (strlen($content) >= 80) {
        die("太长了不会算");
    }
    $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]'];
 ...阅读全文
Nov122020
攻防世界-web-Confusion1(python模板注入SSTI、沙箱逃逸)
题目来源:XCTF 4th-QCTF-2018题目描述:某天,Bob说:PHP是最好的语言,但是Alice不赞同。所以Alice编写了这个网站证明。在她还没有写完的时候,我发现其存在问题。(请不要使用扫描器)
进入界面
首页是一张图片,蛇缠住了大象,猜测此系统使用了php+python,并且是Python代码问题(php的标志是大象,Python的标志是蛇)。
进入登录和注册页面均报404,不过在源码错误信息中提示了flag的...阅读全文
Nov122020
攻防世界-web-favorite_number(php5.5的数组key溢出、换行符绕过正则跨行匹配、inode号绕过文件名过滤、文件输出绕过正则)
进入界面
<?php
//php5.5.9
$stuff = $_POST["stuff"];
$array = ['admin', 'user'];
if($stuff === $array && $stuff[0] != 'admin') {
    $num= $_POST["num"];
    if (preg_match("/^\d+$/im",$num)){
        if (!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num)){
            echo "my favorite num is:";
            ...阅读全文
Nov022020
php 给数组中的每个元素加上单引号或双引号
php 给数组中的每个元素加上单引号或双引号。例如:
$array = [1, 2];
现在需要将该数组变为:
$arr = ['1', '2'];
操作方法:
$new_array = array_map(function ($value) {
    return '\'' . $value . '\'';
}, $array);
关于 array_map 相关知识可参考:
PHP数组函数array_map()笔记
php数组处理函数array_filter、array_walk、array_map的区别
阅读全文
Nov022020
array_column 处理对象数组的办法
例如像下面这种由对象组成的数组($vipUserList),在php 7下可以通过 array_column 获取该数组的 parent_uid 的一个一维数组列表,但是在 5.6 中 array_column 却不能作用于对象。
Array
(
    [32648321] => App\Models\VipUser Object
        (
            [table:protected] => vip_user
            [mc_prefix:protected] => VipUser::
            [fillable:protected]...阅读全文
Nov012020
Laravel用户权限解决方案 Entrust
Zizaco/Entrust 是 Laravel 下的用户权限解决方案,在配合 Zizaco/Confide 身份认证 扩展包,可以快速搭建具备高扩展的用户系统。
用户身份认证 Authentication 用于处理用户登录,退出,注册,找回密码,重置密码,用户邮箱认证等
用户权限管理 Authorization 负责用户与权限以及用户组三者之间的对应以及管理功能。
将用户身份认证和用户权限管理分开可以更加灵活的处理一些特殊的业务逻...阅读全文
Oct262020
将一个以秒为单位的数字间隔时间转换为“时:分:秒”的显示形式
特别提示,php内置函数 gmstrftime 也能达到同样的效果,可以自行网上搜索参考用法。
将一个以秒为单位的数字间隔时间转换为“时:分:秒”的显示形式。
/**
 * 将一个以秒为单位的数字间隔时间转换为“时:分:秒”的显示形式
 * @param int $unixtime
 * @return string
 */
function getTimeHIS($unixtime) {
    $unixtime = (int)$unixtime;
    $hour = intval($unixtime / 3600);
    $ho...阅读全文
Oct242020
php获取字符串宽度
php获取字符串宽度。
/**
 * 获取字符串宽度,半角字符1=1,非半角角字符1=2
 * @param string $str
 * @return float|int
 */
function strwidth($str) {
    $charcount = mb_strlen($str, 'utf-8');
    $pattern = '/[[:print:][:space:]]/u';
    $halfcount = 0;
    if (preg_match_all($pattern, $str, $_match)) {
        $halfcount = sizeof($_match[0]);
    }
    return...阅读全文
 
        
         
 
 
 
 
 
 
 
 
