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)