php面试总结

  • 用PHP获取上周的周一和周日的日期,输出日期格式为Y-m-d;
$w             = date('N');

$lastWeekSunday = date('Y-m-d', strtotime("-$w days"));

$lastWeekMondy  = date('Y-m-d', strtotime("$lastWeekSunday-6 days"));

echo $lastWeekSunday . "\n" . $lastWeekMondy;
  • 使用PHP数组函数对一维数组$array进行如下处理
    • 去除所有键值为空的元素
    • 排重
    • 按照元素值从大到小排序
    • 重新建立数组索引
$array = ['a' => 7, 'b' => 8, 'd' => 6, 9, 3, 'c' => 2, 2, 7, 3, 0, null, 'e' => array(), ''];
// 去除空值
$farray = array_filter($array);
// 排重
$uarray = array_unique($farray);
// 按照元素值从大到小排序
arsort($uarray);
// 重新建立数组索引
$sarray = array_values($uarray);
print_r($sarray);
  • 存在二维数组$array,每组元素中包含如下key:url、title、pubsource、pubtime,请实现title+pubsource对该数据进行排重
$a = [
    [
        'url'       => 'a',
        'title'     => 'a',
        'pubsource' => 'a',
        'pubtime'   => 'a',
    ],
    [
        'url'       => 'b',
        'title'     => 'b',
        'pubsource' => 'b',
        'pubtime'   => 'b',
    ],
    [
        'url'       => 'a',
        'title'     => 'a',
        'pubsource' => 'a',
        'pubtime'   => 'a',
    ],
    [
        'url'       => 'b',
        'title'     => 'b',
        'pubsource' => 'b',
        'pubtime'   => 'b',
    ],
];

function multiunique($a, $c = [])
{
    $b   = [];
    $num = count($c);
    foreach ($a as $value) {
        $k = '';
        for ($i = 0; $i < $num; $i++) {
            $k .= $value[$c[$i]];
        }
        if (!array_key_exists($k, $b)) {
            $b[$k] = $value;
        }
    }
    return array_values($b);
}
$e = multiunique($a, ['title']);
print_r($e);
  • 假设规定新闻的标题不能为存数字,不能为存字母,不能包含彩票/广告/启示字眼,请写出一条判断标题是否合规的正则。
$str = 'asdbcs11a';
$a   = preg_match('/^(?![0-9]+$)(?![a-zA-Z]+$)((?!ab|cd|ef).)*$/', $str);
print_r($a);

linux下压缩包,解压缩的命令

tar命令
-z	是否同时具有gz属性
-j	是否同时具有bz2属性
-J	是否同时具有xz属性
-x	解压缩、提取打包的内容
-t	查看压缩包内容
-c	建立一个压缩,打包文档
-C	切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v	显示压缩或者打包的内容
-f	使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p	保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P	保留绝对路径
-r  向压缩包中追加文件

tar -zcvf 包名.tar.gz 文件名/文件夹名
tar -xvf 包名.tar.gz -C 解压文件的存放目录
如果压缩时,被压缩的文件路径为绝对路径时需要加-P,解压时也是如此
tar -zcvPf 包名.tar.gz 绝对路径
tar -xvPf 包名.tar.gz -C 解压后文件的存放路径
--exclude 用来排除不需要打包的文件或者不需要解压的文件
tar -cvf a.tar --exclude=a.txt shell
tar -xvf a.tar --exclude=c.txt -C test
-r  向压缩包中追加文件
tar -rf a.tar shell/a.txt

zip、unzip压缩

zip
-m	将文件压缩后,删除原文件
-o	将压缩文件内的所有文件的最新变动时间设为压缩的时间
-q	安静模式,在压缩的时候不显示指令执行的过程
-r	递归压缩,将自定目录下的所有子文件以及文件一起处理
-x	”文件列表“,压缩时排除文件列表中的文件

zip -r a.zip shell -x shell/a.txt

upzip

-c	将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
-l	显示压缩文件内所包含的文件
-t	检查压缩文件是否正确
-v	执行时显示压缩文件的详细信息
-q	安静模式,执行时不显示任何信息
-d	指定文件解压后存储的目录
-x	指定不要处理压缩文件中的那些文件

upzip -q a.zip -d test/ -x shell/b.txt


  • linux下写出后台执行test.php并将输出结果输出到test.log文件中的指令
nohup php test.php > test.log &

写一条shell脚本,该脚本将实现找出当前服务器中所有包含spread的进程,杀死这些进程并记录日志,日志内容包含进程名称、进程ID和杀死进程的时间
 

!#bin/bash
ps -ef|grep php|grep -v grep|awk -F ' ' '{print $2,$8}' > a.log
awk -F ' ' '{print $1}' | xarge kill -s 9

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值