字符串颠倒:
- mb_strlen(string $str) 兼容字符集的统计字符串个数,如果出现特殊和中文字符按照一个单位计算
- mb_substr(str, start, length) 获取部分字符串 str:完整字符串。start:开始位置 例如12 5等等。 length:取多少位 例如:1,2,3取一位等。
- strrev($str) 该函数可以直接将字符串进行颠倒,但并不支持一些中文或者特殊字符。
- 需要注意的是mb_strlen 和 mb_substr 这两个函数并不是php核心函数,需要在php.ini文件中开启:extension=php_mbstring 扩展,如果没有那么会提示未定义函数的错误。
//代码实现
$str = 'dsads12bni你好@34ddsa';
function mb_strrev($str){
if(empty($str)){
return false;
}
$r = '';
for($i= mb_strlen($str) - 1; $i >= 0; $i --){
$r .= mb_substr($str,$i,1);
}
return $r;
}
echo mb_strrev($str);
$str = 'adsadas121321';
function st_strrev($str){
$r = '';
for ($i = mb_strlen($str)-1; $i>=0; $i--) {
$r .= $str{$i};
}
return $r;
}
echo st_strrev($str);
验证字符串A中是否包含字符串B中的所有字符(不考虑出现的位置和顺序)
- is_string(string $str) 判断变量$str是否是字符串,如果是返回true 否者返回false;
- mb_strlen(string $str) 兼容字符集的统计字符串个数,如果出现特殊和中文字符按照一个单位计算
- empty($str) 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
- str_split(string $string[, int $split_length = 1]) 将字符串转换为数组。默认长度是1 设置其他阀值。
- in_array($needle, array $haystack[ bool $strict = FALSE]); $needle 搜索的值。 $haystack 待搜索的数组。$strict是个bool 如果是true还会检查搜索值的类型是否和待搜索中的相同。
//代码实现
$stra = 'abcdefghizklmns123456涛里你打好啦';
$strb = 'absdsadsa21n你好涛';
function str_ck($stra,$strb){
if(!is_string($stra) || !is_string($strb) || mb_strlen($stra) < mb_strlen($strb) || empty($stra) || empty($strb)){
return false;
}
$arra = str_split($stra);
$arrb = str_split($strb);
for ($i = 0;$i< count($arrb); $i++){
if(!in_array($arrb[$i],$arra)){
return false;
}
}
return true;
}
var_dump(str_ck($stra,$strb));
递归删除目录下的文件
- opendir(string $path) 打开一个目录句柄,可用于之后的closedir(),readdir(),和rewinddir()调用中。参数:path 要打开的目录路径。
- readdir( $dir_handle) 从目录句柄中读取条目,返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回,返回成功返回文件名,返回失败返回false;
- bool is_dir(string $filename) 判断给定文件名是否是一个目录。如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。
- bool unlink( string $filename[, resource $context] ) 删除 filename。和 Unix C 的 unlink() 函数相似。发生错误时会产生一个 E_WARNING 级别的错误。 成功时返回 TRUE, 或者在失败时返回 FALSE。
- void closedir ([ resource
$dir_handle
] ) 关闭由 dir_handle
指定的目录流。流必须之前被 opendir()如果目录句柄没有指定,那么会假定为是opendir()所打开的最后一个句柄。
- bool rmdir( string
context] )尝试删除 dirname 所指定的目录。该目录必须是空的,而且要有相应的权限。失败时会产生一个 E_WARNING 级别的错误。 成功时返回 TRUE, 或者在失败时返回 FALSE。
// $dir:要删除的文件的目录
function recursiveDelete($dir)
{
// 打开指定目录
if ($handle = @opendir($dir))
{
while (($file = readdir($handle)) !== false)
{
if (($file == ".") || ($file == ".."))
{
continue;
}
if (is_dir($dir . '/' . $file))
{
// 递归
recursiveDelete($dir . '/' . $file);
}
else
{
unlink($dir . '/' . $file); // 删除文件
}
}
@closedir($handle);
rmdir ($dir);
}
冒泡排序:
- int count( $array_or_countable[, int $mode = COUNT_NORMAL]) 计算数组中的单元数目,或对象中的属性个数。
$arr = array(20,60,40,10,30,50,70,80,90);
function mp($arr){
$len = count($arr);
if ($len <= 1) {
return $arr;
}
//升序有小到大,降序由大到小
for($i=0;$i<$len-1; $i++){
$flag = 1;
for($j=$i+1;$j<$len; $j++){
if($arr[$i] > $arr[$j]){
$flag = 0;
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
}
}
if($flag){
break;
}
}
return $arr;
}
function mps($arr){
$len = count($arr);
if ($len <= 1) {
return $arr;
}
for($i = 0; $i<$len; $i++){
$flag = 1;
for($j=0;$j<$len-$i-1;$j++){
if($arr[$j] < $arr[$j+1]){
$flag = 0;
$tmp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $tmp;
}
}
if($flag){
break;
}
}
return $arr;
}
var_dump(mp($arr));
网友评论