PHP常用函数小结

一、字符串函数总结

一、判断类型的函数
is_bool()       //判断是否为布尔型  
is_float()      //判断是否为浮点型  
is_real()       //同上  
is_int()        //判断是否为整型  
is_integer()    //同上  
is_string()     //判断是否为字符串  
is_object()     //判断是否为对象  
is_array()      //判断是否为数组  
is_null()       //判断是否为null  
is_file()       //判断是否为文件  
is_dir()        //判断是否为目录  
is_numeric()    //判断是否为数字  
is_nan()        //判断不是数字  
is_resource()   //判断是否为资源类型  
is_a($obj,$classname) //判断对象是否为类的实例  
                      //可用 if($obj instanceof Classname)  
二、获取子串位置
strpos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中首次出现的数字位置。   
stripos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中首次出现的数字位置, 不区分大小写。  
strrpos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中最后一次出现的数字位置。  
strripos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中最后一次出现的数字位置,不区分大小写。 
三、获取子串
substr($str,$start [,$length]); //获取子串  
substr_compare($main_str,$str,$offset[,$length]); //子串比较 从offset处开始比较  
substr_count($hs,$nd [,$offset=0 [,$length]]); //获取子串nd在hs中出现的次数  
substr_replace($string,$replacement,$start [,$length]); //字符串子串替换  
                               //用$replacement替换掉$string从start开始长度为length的子串  
strstr($hys,$nd [,bool $before_needle = false ]);//返回$nd在$hys 第一次出现的地方开始到字符串结束 为止的字符串  
               //第三个参数如果为true 则返回$nd 之前的字符串  
stristr($hys,$nd [,bool $before_needle = false ]); //同上,忽略大小写版本  
strrchr($hys,$nd); //返回$nd在$hys最后一次出现的地方开始到字符串结束 为止的字符串  
               //一般和 substr(strrchr($hys,$nd),strlen($nd)); 合用  
strpbrk($haystack,$char_list);//从$char_list中依次匹配单个字符在$haystack中第一次出现的地方  
                        //到字符串结束的地方 的整个字符串  
strtok($str,$token); //第一次使用 将字符串按分隔符$token进行分割  
strtok($token);      //第二次使用  
    eg.  
    $string = "This is\tan example\nstring";  
    /* 使用制表符和换行符作为分界符 */  
    $tok = strtok($string, " \n\t");  

    while ($tok !== false) {  
        echo "Word=$tok<br />";  
        $tok = strtok(" \n\t");  
    }  
四、字符串str_ 型函数
str_getcsv($str); //将csv文件字符串转换成一个数组  
str_replace($search,$replace,$subject [,&$count]);//搜索并替换字符串  
           //第四个参数被指定的话,将会赋值给他替换的次数  
str_ireplace($search,$replace,$subject [,&$count]);//搜索并替换字符串  
           //第四个参数被指定的话,将会赋值给他替换的次数 忽略大小写  
str_shuffle(string $str);//随机打乱字符串  
str_split($str [,$len=1]);//将字符串转换成一个数组  
                         //,每个数组单元的长度为$len  
五、字符串长度
strlen($str);  //字符串长度  
六、翻转字符串
strrev(string $string);// 翻转字符串  
七、mb_类型字符串函数

1、介绍

mb_类型字符串与上述字符串函数基本一样,只是加多一个可选的字符编码参数,用法同上。这里列出一些其他有用函数:

2、检测字符串的字符编码

$encode = mb_detect_encoding($lines, array("ASCII","UTF-8","GB2312","GBK","BIG5"));  
if($encode != "UTF-8"){  
    $lines = iconv($encode,"UTF-8", $lines);  
}  
八、字符串的相关操作

1、转换字符串类型

strval($str); //转换成字符串类型  
floatval($str);//转换成浮点型  
intval($str); //转换成整型  

2、大小写转换

strtolower($str); //全部转换成小写  
strtoupper($str); //全部转换成大写  
ucfirst($str); //字符串首字母转大写
ucwords($str);  //字符串每个单词首字符转为大写

3、字符串转时间戳

strtotime($str); //时间格式的字符串转换成整型时间戳  
           //注意设置时区 否则会有 8小时误差  

4、去除HTML 和 PHP 标记

strip_tags($str [,$tags]);//去除不含$tags里标签外的所有标签  

5、ascii转数字 数字转ascii

chr(int $ascii); //数字转换成ascii  
ord(string $str); //返回$str第一个字符的ascii值  

6、json的编码与解码

json_encode($obj/$arr/$str...);//编码成json 格式的字符串  
json_decode($jsonstr [,$assoc=true]); //解码成对象  
                         //当$assoc=true 时 返回数组 而非对象 

7、换行转

nl2br($str); //字符串 $str 所有新行之前插入'<br/>'  

8、数组转字符串,字符串转数组

implode($arr,$glue);//将一维数组转换为字符串  
explode();//字符串转换为数组  

9、千位分割格式化

string number_format ( float $number [, int $decimals = 0 ] )  
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )  
 @param   $number 你要格式化的数字   
          $decimals 要保留的小数位数   
          $dec_point 指定小数点显示的字符   
          $thousands_sep 指定千位分隔符显示的字符 

10、去空格

trim(string $str [,string $charlist ]); //去左右字符  
ltrim(string $str [,string $charlist ]); //去左字符  
rtrim(string $str [,string $charlist ]); //去右字符  

11、把字符串填充为指定的长度:str_pad()

说明:输入: 要填充的字符串|新字符串的长度|供填充使用的字符串, 默认是空白。输出: 完成后的字符串

eg:
$str = "Hello World";
echo str_pad($str,20,".");  //Hello World.........

12、重复使用指定字符串:str_repeat()

eg:
 echo str_repeat(".",13); // 要重复的字符串|字符串将被重复的次数13个点

13、把字符串分割到数组中:str_split()

说明:输入: 要分割的字符串|每个数组元素的长度,默认1
     输出: 拆分后的字符串数组

eg:
print_r(str_split("Hello"));

14、将字符串解析成变量:parse_str()

说明:输入: 要解析的字符串|存储变量的数组名称

eg:
parse_str("id=23&name=John%20Adams", $myArray);
print_r($myArray);

输出: 返回Array( [id] => 23 [name] => John Adams)

15、统计字符串含有的单词数:str_word_count()

16、统计字符串中所有字母出现次数(0..255) :count_chars()

17、在字符串中某些预定义的字符前添加反斜线:quotemeta()

eg:
$str = "Hello world. (can you hear me?)";
echo quotemeta($str);
 // Hello world\. \(can you hear me\?\)

18、指定预定义字符前添加反斜线:addslashes()

eg:
$str = "Who's John Adams?";
echo addslashes($str);
输出: 把目标串中的' " \和null进行转义处理

19、删除由addslashes()添加的转义字符:stripslashes()

echo stripslashes("Who\'s John Adams?"); // 清除转义符号Who's John Adams?

20、在指定的字符前添加反斜线转义字符串中字符:addcslashes()

eg:
$str = "Hello, my name is John Adams.";
echo $str;
echo addcslashes($str,'m');

21、删除由addcslashes()添加的反斜线:stripcslashes()

eg:
echo stripcslashes("Hello, \my na\me is Kai Ji\m.");
    // 目标字符串 Hello, my name is Kai Jim.

22、把字符转为HTML实体:htmlentities()

eg:
$str = "John & 'Adams'";
echo htmlentities($str, ENT_COMPAT); // John & 'Adams'

23、预定义字符转html编码:htmlspecialchars()




二、数组函数总结

一、数组的键/值操作函数
array_values($arr);  //获得数组的值
array_keys($arr);  //获得数组的键名
array_flip($arr);  //数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr);  //在数组中检索apple
array_search("apple",$arr);  //在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr);  //检索给定的键名是否存在数组中
isset($arr[apple]):   //检索给定的键名是否存在数组中
二、统计数组元素的个数和唯一性
count();//计算数组中的单元数目,或对象中的属性个数
array_count_values();//统计数组中所有的值
array_unique();//移除数组中重复的值
三、使用回调函数处理数组的函数
------------------------------------------------------------------------------------
array_walk($arr,'function','words');  //使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

echo "Before ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";

array_walk($fruits, 'test_print');
//以上例程会输出:
Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple
------------------------------------------------------------------------------------
array_map("function",$arr1,$arr2);  //可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
//以上例程会输出:
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)
------------------------------------------------------------------------------------
array_filter($arr,"function");  //使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,//数组的键名保留不变
function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
//以上例程会输出:
Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)
------------------------------------------------------------------------------------
array_reduce($arr,"function","*");  //转化为单值函数(*为数组的第一个值)
function sum($carry, $item)
{
    $carry += $item;
    return $carry;
}

function product($carry, $item)
{
    $carry *= $item;
    return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), because: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
------------------------------------------------------------------------------------
四、数组的排序函数
//通过元素值对数组排序
sort($arr);  //由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr);  //由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function");  //使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr);  //由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr);  //由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function");  //使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序

//通过键名对数组排序
ksort($arr);  //按照键名正序排序
krsort($arr);  //按照键名逆序排序
uksort($arr,"function");  //使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)

//自然排序法排序
natsort($arr);  //自然排序(忽略键名)
natcasesort($arr);  //自然排序(忽略大小写,忽略键名)
五、拆分、合并、分解和接合数组
 array_slice()//从数组中取出一段
 array_splice()//删除
 array_combine()//合并
 array_merge();//合并
 array_intersect();//多个数组的交集
 array_intersect_assoc($arr1,$arr2);  //返回交集结果数组,键名也做比较
 array_diff();//返回多个数组的差集
 array_diff_assoc($arr1,$arr2,$arr3);  //返回差集结果数组,键名也做比较
六、数组与数据结构
//1.使用数组实现堆栈 //先进后出
array_push(); //将一个或多个单元压入数组的末尾(入栈)
array_pop();//弹出数组最后一个单元(出栈)
//2.使用数组实现队列 //先进先出
array_unshift();//在数组开头插入一个或多个单元
array_shift(); //将数组开头的单元移出数组
unset();//释放给定的变量
七、其他有用的数组处理函数
range(0,12);  //创建一个包含指定范围单元的数组
array_reverse($arr,TRUE);  //返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
array_rand($arr,2);  //从数组中随机取出一个或 多个元素
shuffle($arr);  //将数组的顺序打乱
array_sum($arr);  //对数组内部的所有元素做求和运算
key(); 返回数组内部指针当前指向元素的键名    
current();  //返回数组中的当前元素(单元).    
next();  //把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值  
prev();  //把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值   
end();  //将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)  
reset();  //把数组的内部指针指向第一个元素,并返回这个元素的值    
list();  //用数组中的元素为一组变量赋值
shuffle();  //将数组打乱,保留键名
each();  //返回数组中当前的键/值对并将数组指针向前移动一步



三、文件函数总结

一、解析路径

1、获得文件名:basename();

说明:给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。

eg:
$path = "/home/httpd/html/index.php";
$file = basename($path,".php"); // $file is set to "index"

2、得到目录部分:dirname();

说明:给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

eg:
$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"

3、得到路径关联数组:pathinfo();

说明:得到一个指定路径中的三个部分:目录名,基本名,扩展名。

eg:
$pathinfo = pathinfo("www/test/index.html");
var_dump($pathinfo);
// $path['dirname']
$path['basename']
$path['extenssion']
二、文件类型

1、返回文件的类型:filetype();

说明:可能的值有 fifo,char,dir,block,link,file 和 unknown。

eg:
echo filetype('/etc/passwd'); // file
echo filetype('/etc/');        // dir
三、得到给定文件有用信息数组(很有用)

1、通过已打开的文件指针取得文件信息:fstat();

说明:获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。

eg:
// 打开文件
$fp = fopen("/etc/passwd", "r");
// 取得统计信息
$fstat = fstat($fp);
// 关闭文件
fclose($fp);
// 只显示关联数组部分
print_r(array_slice($fstat, 13));

2、获取由 filename 指定的文件的统计信息(类比fstat()):stat();

四、计算大小

1、返回文件大小的字节数:filesize();

说明:返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。

eg:
// 输出类似:somefile.txt: 1024 bytes
$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

2、获得目录所在磁盘分区的可用空间(字节单位):disk_free_space();

// $df 包含根目录下可用的字节数
$df = disk_free_space("/");
//在 Windows 下:
disk_free_space("C:");
disk_free_space("D:");

3、返回一个目录的磁盘总大小: disk_total_space();

eg:(同上,换掉函数)
五、 访问与修改时间
  1. fileatime():最后访问时间
  2. filectime():最后改变时间(任何数据的修改)
  3. filemtime():最后修改时间(指仅是内容修改)
六、 文件的I/O操作

1、打开文件或者 URL:fopen

mode 说明
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE

eg:
$handle = fopen("/home/rasmus/file.txt", "r");

2、把整个文件读入一个数组中(此函数是很有用的):file

说明:和 file_get_contents() 一样,只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE。

eg:
$lines = file('http://www.example.com/');
// 在数组中循环,显示 HTML 的源文件并加上行号。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 另一个例子将 web 页面读入字符串。参见 file_get_contents()。
$html = implode('', file ('http://www.example.com/'));

3、从文件指针中读取一行:fgets

说明:从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

eg:
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}

4、从文件指针中读取一行并过滤掉 HTML 标记:fgetss

说明:和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。

5、从文件指针中读取一行:fgets()

说明:调用: string fgets ( int handle [, int length] ) 输出: 从handle指向的文件中读取一行并返回长度最多为length-1字节的字符串.碰到换行符(包括在返回值中)、EOF 或者已经读取了length -1字节后停止(看先碰到那一种情况). 如果没有指定 length,则默认为1K, 或者说 1024 字节.

eg:
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}

6、从文件指针中读取字符:fgetc()

说明:输入: string fgetc ( resource $handle ) 输出: 返回一个包含有一个字符的字符串,该字符从 handle指向的文件中得到. 碰到 EOF 则返回 FALSE.

eg:
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
echo 'Could not open file somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
echo "$char\n";
}

7、输出一个文件:readfile()

说明: 调用: int readfile ( string $filename [, bool $use_include_path [, resource $context ]] )

输出: 读入一个文件并写入到输出缓冲。返回从文件中读入的字节数。如果出错返回 FALSE

8、将整个文件读入一个字符串:file_get_contents()

说明: 调用: string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )

eg:
echo file_get_contents('http://www.baidu.com');

9、返回文件指针读/写的位置:ftell()

说明:调用: int ftell ( resource $handle ) 输出: 返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。

eg:
$fp=fopen('tx.txt','r');
fseek($fp,10);
echo ftell($fp);
fread($fp,4);
echo ftell($fp);

10、在文件指针中定位:fseek()

说明:调用: int fseek ( resource $handle , int $offset [, int $whence ] ) 输出: 成功则返回 0;否则返回 -1。

eg:
$fp=fopen('tx.txt','r');
fseek($fp,10);
echo ftell($fp);
fread($fp,4);
echo ftell($fp);

11、倒回文件指针的位置:倒回文件指针的位置:rewind()

说明:调用: bool rewind ( resource $handle ) 返回值: 如果成功则返回 TRUE,失败则返回 FALSE。

eg:
$fp=fopen('tx.txt','r');
fseek($fp,3);
echo ftell($fp);
fread($fp,4);
rewind($fp);
echo ftell($fp);

12、轻便的执行文件锁定:flock()

说明:调用: bool flock ( int $handle , int $operation [, int &$wouldblock ] ) 输出: 如果成功则返回 TRUE,失败则返回 FALSE。

eg:
$fp=fopen('tx.txt','r');
flock($fp, LOCK_SH);//共享锁
//flock($fp, LOCK_EX);//独立锁,写文件时用它打开
//flock($fp, LOCK_NB);//附加锁
flock($fp, LOCK_UN);//释放锁
fclose($fp);

13、写入文件:fwrite()

说明:调用: int fwrite ( resource handle, string string [, int length] )
输出: 把 string 的内容写入 文件指针 handle 处。如果指定了 length,当写入了length个字节或者写完了string以后,写入就会停止, 视乎先碰到哪种情况。

eg:
$filename = 'test.txt';
$somecontent = "添加这些文字到文件\n";
$handle = fopen($filename, 'a');
fwrite($handle, $somecontent);
fclose($handle);

14、fputs():同上 

七、 对文件属性的操作(操作系统环境不同,可能有所不一样,这点要注意)

1、文件是否可读:bool is_readable ( string filename )

 说明:如果由 filename 指定的文件或目录存在并且可读则返回 TRUE

2、文件是否可写:bool is_writable ( string filename )

说明: 如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。

3、检查文件是否存在:bool file_exists ( string filename )

说明:如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE

4、判断给定文件是否可执行:is_executable()

说明:调用: bool is_executable ( string $filename ) 输出: 如果文件存在且可执行则返回 TRUE。

eg:
$file = 'setup.exe';
if (is_executable($file)) {
echo '可执行';
} else {
echo '不可执行';
}

5、获取文件的创建时间:filectime()

说明:调用: int filectime ( string $filename ) 输出: 时间以 Unix 时间戳的方式返回,如果出错则返回FALSE。

eg:
$filename = 'somefile.txt';
echo filectime($filename);

6、获取文件的修改时间:filemtime()

说明:输出: 返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix时间戳的方式返回。

eg:
$filename = 'somefile.txt';
echo filemtime($filename);

7、获取文件的上次访问时间:fileatime()

说明:输出: 返回文件上次被访问的时间, 如果出错则返回FALSE. 时间以Unix时间戳的方式返回。

eg:
$filename = 'somefile.txt';
echo fileatime($filename);
八、对的目录的操作

1、打开目录句柄:opendir

说明:打开目录句柄,打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。

2、从目录句柄中读取条目:readdir

说明:从目录句柄中读取条目,返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

eg:
if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";

while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

while ($file = readdir($handle)) {
echo "$file\n";
}
     closedir($handle);
}

3、 列出指定路径中的文件和目录:scandir

说明:列出指定路径中的文件和目录(很有用),返回一个 array,包含有 directory 中的文件和目录。
默认的排序顺序是按字母升序排列。如果使用了可选参数 sorting_order(设为 1),则排序顺序是按字母降序排列。

eg:
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);   

4、关闭目录句柄:closedir()

$fp=opendir('E:/xampp/htdocs/php/study/19');
echo readdir($fp);
closedir($fp);

5、删除目录:rmdir()

说明:调用: bool rmdir ( string $dirname ) 输出: 尝试删除 dirname 所指定的目录。目录必须是空的,而且要有相应的权限。如果成功则返回TRUE,失败则返回 FALSE。

eg:
rmdir('123');

6、删除文件:unlink()

说明:调用: bool unlink ( string $filename ) 输出: 删除 filename 。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE,失败则返回 FALSE。

eg:
unlink('123/1.txt');
rmdir('123');

7、拷贝文件:copy()

说明:调用: bool copy ( string $source , string $dest ) 输出: 将文件从 source 拷贝到 dest. 如果成功则返回TRUE,失败则返回 FALSE。

eg:
copy('index.php','index.php.bak');

8、重命名一个文件或目录:rename()

说明:调用: bool rename ( string $oldname , string $newname [, resource $context ] ) 输出: 如果成功则返回 TRUE,失败则返回 FALSE。

eg:
rename('tx.txt','txt.txt');

9、判断文件是否是通过 HTTP POST上传的:is_uploaded_file()

eg:
if(is_uploaded_file($_FILES['bus']['tmp_name'])){
if( move_uploaded_file($_FILES['bus']['tmp_name'],
$NewPath) ){
echo '上传成功<br /><img src="'.$NewPath.'">';
}else{
exit('失败');
}
}else{
exit('不是上传文件');
}

10、将上传的文件移动到新位置:move_uploaded_file()

if(is_uploaded_file($_FILES['bus']['tmp_name'])){
if( move_uploaded_file($_FILES['bus']['tmp_name'],
$NewPath) ){
echo '上传成功<br /><img src="'.$NewPath.'">';
}else{
exit('失败');
}
}else{
exit('不是上传文件');
}



四、数学函数总结

1、求绝对值:abs()

eg:
abs(-5);        //求-5的绝对值,得5

2、求反正弦:asin()

eg:
asin(0.44); //求0.44的反正弦,具体结果多少没执行不知道

3、进一法取整:ceil()

eg:
ceil(9.7);      //进一法取整,得10

4、十进制转二进制:decbin()

eg:
decbin(2);  //将十进制的2转为二进制的2,得10

5、舍去法取整:floor()

eg:
floor(9.9); //舍去法取整,得9

6、求最大值:max()

eg:
max(7,13,41,22,91,32);  //取最大值,得91

7、求最小值:min()

eg:
min(7,13,41,22,91,32);      //取最小值,得7

8、指数表达式:pow()

eg:
pow(2,5);   //求2的5次方是多少,得32

9、产生一个随机数:mt_rand(min,max)(效率更高) / rand(min,max)

eg:
mt_rand(0,25);  //在0~25的范围内产生一个随机数,0与25都是可选参数
rand(0,25); //在0~25的范围内产生一个随机数,0与25都是可选参数

10、对浮点型四舍五入:round()

eg:
round(9.453);       //四舍五入取整,得9。

11、求正弦:sin()

eg:
sin(60);        //求正弦sin60

12、平方根:sqrt()

eg:
sqrt(49);       //开49平方根,得7



五、时间日期函数总结

1、 返回当前的 Unix 时间戳:time()

调用: int time ( void ) 输出: 返回自从 Unix 纪元(格林威治时间 19701100:00:00)到当前时间的秒数

2、取得一个日期的 Unix 时间戳:mktime()

mktime(0, 0, 0, 4, 25, 2012);
调用: int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )   
date(): 格式化一个本地时间/日期:date('Y年m月d日 H:i:s');
调用: string date ( string $format [, int $timestamp ] )
输出: 2016091020:45:54

3、 验证一个格里高里日期:checkdate()

说明:调用: bool checkdate ( int $month , int $day , int $year) 输出: 如果给出的日期有效则返回 TRUE,否则返回 FALSE

eg:
if(checkdate(6,31,2012)){
echo '成立';
}else{
echo '不成立';
}

4、设定用于一个脚本中所有日期时间函数的默认时区:date_default_timezone_set()

说明:调用: bool date_default_timezone_set ( string $timezone_identifier)
返回值: 如果 timezone_identifier 参数无效则返回 FALSE,否则返回 TRUE。

eg:
date_default_timezone_set('PRC');

5、取得日期/时间信息:getdate()

说明:输出: 返回一个根据timestamp得出的包含有日期信息的关联数组。如果没有给出时间戳则认为是当前本地时间

eg:
$t=getdate();
var_dump($t);

6、返回当前 Unix 时间戳和微秒数:microtime()

$start=microtime(true);
sleep(3);
$stop=microtime(true);
echo $stop-$start;

7、将任何英文文本的日期时间描述解析为 Unix 时间戳:strtotime()

echo strtotime("now");
int strtotime ( string $time [, int $now ] )  
echo strtotime("10 September 2000");
echo strtotime("+1 day");
echo strtotime("+1 week");
echo strtotime("+1 week 2 days 4 hours 2 seconds");
echo strtotime("next Thursday");
echo strtotime("last Monday");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值