20171007

1.PHP遍歷一個文件夾下所有文件和子文件夾的函數(shù)

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 { //不然就將文件的名字存入數(shù)組;
                    $files[] = $file;
                }

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

2.找出有序數(shù)組中隨機3個數(shù)和為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 提交數(shù)據(jù)方式:

  • application/x-www-form-urlencoded

    • 提交的數(shù)據(jù)按照 key1=val1&key2=val2 的方式進行編碼,key 和 val 都進行了 URL 轉(zhuǎn)碼
  • multipart/form-data

    • 這種方式一般用來上傳文件
  • application/json

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

    • XML 作為編碼方式的遠(yuǎn)程調(diào)用規(guī)范

4.get_defined_constants()

獲取所有PHP常量

5.閉包調(diào)用時綁定(php7新特性)

PHP 5.4版本時,提供了Closure->bindTo()和Closure::bind()方法,用于改變閉包中$this的綁定對象和作用域,同時復(fù)制一個新的閉包。
PHP 7現(xiàn)在加入了一個更加簡單的方法Closure->call(),使其在調(diào)用時綁定$this和作用域。此方法將綁定的對象作為第一個參數(shù),其后的參數(shù)作為閉包參數(shù)傳入,如下:

<?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標(biāo)記及其內(nèi)容都去掉)

<?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)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容