一、字符串函数总结
一、判断类型的函数
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:(同上,换掉函数)
五、 访问与修改时间
- fileatime():最后访问时间
- filectime():最后改变时间(任何数据的修改)
- 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 纪元(格林威治时间 1970 年 1 月 1 日 00: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 ] )
输出: 2016年09月10日 20: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");