
批改狀態(tài):合格
老師批語(yǔ):
function delete_dir_file($dir)
{
// 初始狀態(tài)
$flag = false;
// is_dir() 判斷是否為目錄
if (is_dir($dir)) {
// opendir() 打開目錄句柄,成功則返回目錄句柄的 resource, 或者在失敗時(shí)返回 false
if ($handle = opendir($dir)) {
// readdir() 從目錄句柄中讀取條目(需要 opendir() 打開的目錄句柄),成功則返回文件名 或者在失敗時(shí)返回 false
while (($file = readdir($handle)) !== false) {
// 排除 ‘.'(表示有同級(jí)目錄或文件) 和 '..'(表示有父目錄)
if ($file !== '.' && $file !== '..') {
/**
* 如果當(dāng)前目錄下沒(méi)有目錄,都是文件,則刪除所有文件,跳出 if ($handle = opendir($dir)) 語(yǔ)句后刪除當(dāng)前目錄
* 如果當(dāng)前目錄下有子目錄,則將當(dāng)前目錄作為參數(shù)調(diào)用自己 delete_dir_file($dir . DIRECTORY_SEPARATOR . $file)
* 逐層深入,由內(nèi)向外刪除所有子目錄和文件
*/
// 判斷當(dāng)前是否為目錄,是的話調(diào)用自己 delete_dir_file ($dir . DIRECTORY_SEPARATOR . $file)
if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
delete_dir_file($dir . DIRECTORY_SEPARATOR . $file);
} else {
// 不是目錄,是文件,用 unlink() 刪除
unlink($dir . DIRECTORY_SEPARATOR . $file);
}
}
}
}
// 關(guān)閉打開的目錄句柄
closedir($handle);
// 刪除目錄,成功將 $flag 設(shè)置為 true
if (rmdir($dir)) {
$flag = true;
}
}
return $flag;
}
$del_path = __DIR__ . DIRECTORY_SEPARATOR . 'tmvc';
if (delete_dir_file($del_path)) {
echo json_encode(['msg' => '緩存目錄刪除成功', 'code' => 0], 320);
} else {
echo json_encode(['msg' => '緩存目錄刪除失敗', 'code' => 1], 320);
}
將數(shù)組轉(zhuǎn)換為字符串,用指定符號(hào)連接
$arr = ['html', 'css', 'uniapp', 'vue', 'electron'];
echo implode('|', $arr); // html|css|uniapp|vue|electron
將字符串轉(zhuǎn)為數(shù)組,用字符串中的某個(gè)字符分割成若干數(shù)組成員
echo $_SERVER['DOCUMENT_URI']; // /phpedu/1.php
$pathinfo = explode("/", $_SERVER['DOCUMENT_URI']);
var_dump($pathinfo);
// array(3) { [0]=> string(0) "" [1]=> string(6) "phpedu" [2]=> string(5) "1.php" }
字符串替換,格式:
str_replace(
array|string $search
,
array|string $replace
,
string|array $subject
,
int &$count
= null
): string|array
search: 查找的目標(biāo)值,也就是 needle。一個(gè)數(shù)組可以指定多個(gè)目標(biāo)。
replace: search 的替換值。一個(gè)數(shù)組可以被用來(lái)指定多重替換。
subject:執(zhí)行替換的數(shù)組或者字符串。也就是 haystack。如果 subject 是一個(gè)數(shù)組,替換操作將遍歷整個(gè) subject,返回值也將是一個(gè)數(shù)組。
count:如果被指定,它的值將被設(shè)置為替換發(fā)生的次數(shù)。
// 敏感詞列表
$search = ['交友', '廣告', '轉(zhuǎn)賬', '直播', '帶貨', '陪聊', '異性'];;
// 需要發(fā)送的留言
$chatMSG = '本公司承接各類廣告代理,提供直播和帶貨教學(xué),提供異性交友陪聊服務(wù)...';
// 將留言中的敏感詞替換為 *** ,返回替換后的字符串
// 第四個(gè)參數(shù)返回一個(gè)變量,值為替換的次數(shù)
$RES = str_replace($search, "**", $chatMSG, $count);
echo $RES; // 本公司承接各類**代理,提供**和**教學(xué),提供******服務(wù)...
echo $count; // 6
// 過(guò)濾留言信息
if ($count == 0) {
// 消息發(fā)送
} else {
// 警告功能 服務(wù)端主動(dòng)向客戶端發(fā)送消息
}
獲取子字符串,格式:
substr(string $string
, int $offset
, ?int $length
= null
): string
// 生成隨機(jī)驗(yàn)證碼 隨機(jī)顏色
// rand() — 產(chǎn)生一個(gè)隨機(jī)整數(shù)
$str = md5(rand());
$code = substr($str, 0, 4);
echo "<h1>";
for ($i = 0; $i < strlen($code); $i++){
// 十六進(jìn)制顏色
$color = '#' . substr(md5(rand()), 0, 6);
echo "<span style='color: {$color}'>";
echo substr($code, $i,1);
echo "</span>";
}
echo "</h1>";
和 substr() 一樣都是截取子字符串,不同的是 mb_substr() 可以針對(duì)多字節(jié)編碼的漢字進(jìn)行截取,從而防止亂碼的出現(xiàn)。
echo substr('你放棄了嗎', 0, 4); // 你?
echo mb_substr('你放棄了嗎', 0, 4); // 你放棄了
將字符串編碼并將其用于 URL 的請(qǐng)求部分,同時(shí)它還便于將變量傳遞給下一頁(yè)。
除了 -
_
.
之外的所有非字母數(shù)字字符都將被替換成百分號(hào)(%
)后跟兩位十六進(jìn)制數(shù)。
空格則編碼為加號(hào)(+
)。
echo urlencode('韓寒'); // %E9%9F%A9%E5%AF%92
解碼已編碼的 URL 字符串。
echo urldecode('%E9%9F%A9%E5%AF%92'); // 韓寒
生成 urlencode 編碼之后的請(qǐng)求字符串(請(qǐng)求參數(shù))
$params = [
'city' => '合肥', // 新聞?lì)愋?/span>
'key' => '12545we2234343', // 接口調(diào)用key,通過(guò)聚合平臺(tái)申請(qǐng)開通
];
$paramsString = http_build_query($params);
echo $paramsString; // city=%E5%90%88%E8%82%A5&key=12545we2234343
使用 MIME base64 對(duì)數(shù)據(jù)進(jìn)行編碼,為了使二進(jìn)制數(shù)據(jù)可以通過(guò)非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。Base64-encoded 數(shù)據(jù)要比原始數(shù)據(jù)多占用 33% 左右的空間。
// 示例:將二進(jìn)制圖片進(jìn)行編碼,將編碼結(jié)果作為 <img> 的 src 屬性
// 獲取圖片文件(二進(jìn)制文件)
$file = file_get_contents("https://gw.alicdn.com/imgextra/i2/3372144204/O1CN01aBboqA1gvTtBoaBVx_!!3372144204-0-alimamacc.jpg_300x300q90.jpg_.webp");
// 使用 MIME base64 對(duì)數(shù)據(jù)進(jìn)行編碼
$file_base64 = base64_encode($file);
// <img> 的 src 屬性data:image/jpeg;base64,<?= $file_base64 ?>
<img src="data:image/jpeg;base64,<?= $file_base64 ?>" alt="">
// 頁(yè)面上圖片鏈接為:
// Data:image/jpeg;base64,UklGRuBGAABXRUJQVlA4INRGAABQ9ACdASosASwBPjkYikOiIaETqfX8IAOEpu...
對(duì)使用 MIME base64 編碼的數(shù)據(jù)進(jìn)行解碼。
$data = 'ipnx.cn';
$data64 = base64_encode($data);
print $data64; // d3d3LnBocC5jbg==
$decodeData = base64_decode($data64);
print $decodeData; // ipnx.cn
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)