20171007

1.PHP遍历一个文件夹下所有文件和子文件夹的函数

function my_dir($dir = '.') {
    $files = array();
    if($handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
        while(($file = readdir($handle)) !== false) {
            if($file != ".." && $file != ".") { //排除根目录;
                if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
                    $files[$file] = my_dir($dir."/".$file);
                } else { //不然就将文件的名字存入数组;
                    $files[] = $file;
                }

            }
        }
        closedir($handle);
        return $files;
    }
}
echo "<pre>";
print_r(my_dir("."));
echo "</pre>";

2.找出有序数组中随机3个数和为0的所有情况

<?php
function three_sum($arr) {
  $n = count($arr);
  $result = array();

  for ($i=0; $i < $n; $i++) {
    $left = $i + 1;
    $right = $n - 1;

    while ($left <= $right) {
      $sum = $arr[$i]+$arr[$left]+$arr[$right];
      if($sum < 0){
        $left++;
      }else if($sum > 0){
        $right--;
      }else{
        $numbers = $arr[$i] . ',' . $arr[$left] . ',' . $arr[$right];
        if(!in_array($numbers, $result)){
          $result[] = $numbers;
        }
        $left++;
        $right--;
      }
    }
  }
  return $result;
}
$array = array(-12, -8, -5, -3, -1, 0, 1, 2, 4, 5, 7, 9, 12);
var_dump(three_sum($array));
E:\wamp64\www\demo\20171002demo\demo5.php:29:
array (size=10)
  0 => string '-12,0,12' (length=8)
  1 => string '-12,5,7' (length=7)
  2 => string '-8,-1,9' (length=7)
  3 => string '-8,1,7' (length=6)
  4 => string '-8,4,4' (length=6)
  5 => string '-5,0,5' (length=6)
  6 => string '-5,1,4' (length=6)
  7 => string '-3,-1,4' (length=7)
  8 => string '-3,1,2' (length=6)
  9 => string '-1,0,1' (length=6)

3.四种常见的 POST 提交数据方式:

  • application/x-www-form-urlencoded

    • 提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码
  • multipart/form-data

    • 这种方式一般用来上传文件
  • application/json

    • 序列化后的 JSON 字符串
  • text/xml

    • XML 作为编码方式的远程调用规范

4.get_defined_constants()

获取所有PHP常量

5.闭包调用时绑定(php7新特性)

PHP 5.4版本时,提供了Closure->bindTo()和Closure::bind()方法,用于改变闭包中$this的绑定对象和作用域,同时复制一个新的闭包。
PHP 7现在加入了一个更加简单的方法Closure->call(),使其在调用时绑定$this和作用域。此方法将绑定的对象作为第一个参数,其后的参数作为闭包参数传入,如下:

<?php
class HelloWorld{
  private $greeting  = "Hello";
}

$closure = function($whom) { echo $this->greeting . ' ' . $whom; }

$obj = new HelloWorld();
$closure->call($obj, 'World'); // Hello World

6.列出一些防范SQL注入、XSS攻击、CSRF攻击的方法

7..写一个正则表达式,过滤JS脚本(及把script标记及其内容都去掉)

<?php
$text = "<script>alert('XSS')</script>1112";
$pattern = '/<script[^>]*?>.*?<\/script>/si';
$text = preg_replace($pattern, '', $text);
var_dump($text);

E:\wamp64\www\demo\20171002demo\demo5.php:5:string '1112' (length=4)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 把当前目录作为Root Document只需要这条命令即可:php -S localhost:3300 也可以指定...
    绚烂的时光阅读 756评论 0 1
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,295评论 4 61
  • 记得读初中那会,很喜欢看冰心的《繁星》《春水》,于是从那时起陆陆续续就有了许多不成篇的小段落,今儿个偶然翻到,纸张...
    大江翻腾神曳烟阅读 804评论 2 3
  • 关于20期整体学习性,分为积极性、消极性、中间力量。我是属于中间力量偏向积极性的人,为了我自己更好,我要实现的目标...
    陆敏Amy阅读 211评论 0 0