PHP常用函数总结(一):

<?php
echo "<pre>";
//===============================时间日期===============================

//y返回年最后两位,Y年四位数,m月份数字,M月份英文。d月份几号数字,D星期几英文
$date=date("Y-m-d");
$date=date("Y-m-d H:i:s");//带时分秒

//mktimes转换成UNIX时间戳 参数 mktime(hour,minute,second,mouth,day,year); 依次从右左向右 时分秒  月 日 年; 
$str=date("Y-m-d",mktime(0,0,0,13,36,2007));

//time();//获取当前时间戳;
$int=time();

//getdate();//返回时间戳组成的关联数组
getdate();

//microtime() //返回一个当前的微秒数值;
microtime(true);

//include,include_once.require,require_once
//require("file.php") 在PHP程序执行前就会先读入require所指定引进的文件,如出现错误是致命的。
//include("file.php") 可以放在PHP程序的任何位置,PHP程序执行到时才读入include指定引入的文件,如出现错误会提示

//===============================输出打印===============================
//sprintf("%d","3.2") ;//只格式化,返回格式化后的字符串,不输出。
//printf("%d","3.2") ;//即格式化,又输出
//print("3.2") ;//只输出
//echo "nihao","aa";//可以输出多个字符串
//print_r(array("a","b","c"));//将数组的键值与元素依次显示
//var_dump($string);//打印输出一个对象

//===============================常用字符串函数======================================

//获取字符串长度,有多少个字符,空格也算
$str=" sdaf sd ";
$len=strlen($str);

//用第一个参数里的字符串,把后面数组里的每个元素连接起来,返回一个字符串。
$str=implode("-",array("a","b","c"));
//echo $str;
//字符串分割方法,返回一个数组,用第一个参数里的字符分割后面的字符串,指定字符的前后和之间都截取,如果指定字符在开头或结尾则返回的数组开头或结尾的元素为空字符串
//没有分割到字符串就返回给数组对应元素一个空值。最后一个限制返回数组长度,可不限制,则一直分割下去。
$array=explode("a","asddad addsadassd dasdadfsdfasdaaa",4);
//print_r($array);

//剔除字符串左边开头的空格,并返回
//如有第二个参数则是剔除左边开头的空格换成剔除第二个参数里的字符串
$str=ltrim("a asd ","a");

//剔除字符串右边开头的空格
$str=rtrim(" asd ");

//把第一个字符串两边以第二个参数开头的字符串剔除。如没有第二个参数,默认剔除掉字符串两边开头的空格
$str=trim(" sdsdfas ","a");

//从字符串第一个参数里的指定位置开始取多长(多少个)字符,字符串中第一个字符位置从0算。
//如果第二个参数为负则从字符串结尾倒数第几个开始取多长的字符串。结尾最后一个字符算-1,截取方向总是从左到右
$str=substr("abcdefgh",0,4);


//将第三个参数的第一个参数字符串用参数二字符串替换
$str=str_replace("a","","abcabcAbca");
//与str_replace用法同,只是不区分大小写
//$str=str_ireplace("a"," ","abcabcAbca");

            //1.str_replace(array,string,string,count);将array中的元素替换替换成string中的字符串被替换为count次
            $value=array('h','e','l','o');
            $string="Hello world";
            $str=str_replace($value,"",$string)."<br>";
            
            //2.str_ireplace(array,string,string,count); 不区分大小写
            $value=array('a','b','D','0','W','i');
            $str=str_ireplace($value,"",$string)."<br>";
            
            //3.str_replace(array,array,string,count);将array中的数组元素替换替换成arrat中的数组元素  并且是一一对应对应 被替换为count次
            $value=array('h','e','l','o');
            $string="Hello world";
            $replace=array('f','u','c','...');
            $str= str_replace($value,$replace,$string)."<br>";
            
            //4.str_ireplace(array,array,string,count); 不区分大小写
            $value=array('a','b','D','0','W','i');
            $replace=array('f','u','c','...');
            $str =str_ireplace($value,$replace,$string)."<br>";


//返回括号里字符串的字符全部大写的字符串
$str=strtoupper("sdaf");

//将括号里第一个字符串变成大写后返回
$str=ucfirst("asdf");

//用echo等将括号里字符串打印在网页上时原汁原味打印出括号里的字符串,包括标签字符
$str=htmlentities("<br/>");

//返回第二个参数字符串在第一个字符串里出现的次数
$int=substr_count("abcdeabcdeablkabd","ab");

//返回第二个字符串在第一个字符串第一次出现的位置,第一个字符位置算0
$int=strpos("asagaab","ab");

//返回第二个字符串在第一个字符串最后一次出现的位置,第一个字符位置算0
$int=strrpos("asagaabadfab","ab");

//截取返回参数一中从左至右第一个出现的参数二到参数一最后一个字符的字符串
$str=strstr("sdafsdgaababdsfgs","ab");

//截取返回参数一中从左至右最后一个出现的参数二到参数一最后一个字符的字符串
$str=strrchr("sdafsdgaababdsfgs","ab");

//将参数二中每一个字符在参数一中相同字符前加"\"
$str=addcslashes("abcdefghijklmn","akd");

//将参数一的字符串填充到参数二指定的长度(单字符个数),参数三为指定填充的字符串,不写默认空格
//参数四填充位置,0在参数一左侧开头填充,1右侧开头,2两边开头同时。不写默认在右侧开头填充
$str=str_pad("abcdefgh",10,"at",0);

//依次比较两字符串对应字符阿斯克码值,第一对不一样的,如果参数一里大于参数二里的返回1,反之返回-1,两字符串完全一样返回0
$int1=strcmp("b","a");

//返回第一个参数格式化后的数字格式,第二个参数为保留几个小数,参数三为将小数点换成参数三,参数四为整数部分每三位用什么字符分割
//后面三个参数都不写,则默认去掉小数部分,整数每隔三位用逗号,分割。参数三,参数四必须同时存在
$str=number_format(1231233.1415,2,"d","a");

//=================================================常用正则函数=====================================================
        //1.preg_match
        $pattern="/(http):\/\/(www|ftp|email|wap|m)\W([0-9a-z]*)\W(org|cn|com|fuck|2B)/";
        $string.="这个是x人百度的网站http://www.baidu.com";
        $string.="这个是X人腾讯的网站http://www.qq.com";
        $string.="这个是x人谷歌的网站http://www.google.com";
        /*$matches: 返回一个数组
        
        正则表达式的子模式是使用括号()括起来的模式单元,只匹配第一个网址
           mathces[0] :表示的是pattern中匹配出来的整体内容
         mathces[1]:  表示的是pattern中匹配出来的第一个()的内容
         mathces[2]:  表示的是pattern中匹配出来的第二个()的内容
        Array
        (
            [0] => http://www.baidu.com
            [1] => http
            [2] => www
            [3] => baidu
            [4] => com
        )
        */
        preg_match($pattern,$string,$matches);
        //print_r($matches);


/*---------------------------------------------------------------------------------------------------------*/
        //2.preg_match_all
        $pattern="/(http):\/\/(www|ftp|email|wap|m)\W([0-9a-z]*)\W(org|cn|com|fuck|2B)/";
        $string.="这个是x人百度的网站http://www.baidu.com";
        $string.="这个是X人腾讯的网站http://www.qq.com";
        $string.="这个是x人谷歌的网站http://www.google.com";
        /*$matches: 返回一个数组
        正则表达式的子模式是使用括号()括起来的模式单元,
        Array
        (
            [0] => Array
                (
                    [0] => http://www.baidu.com
                    [1] => http://www.qq.com
                    [2] => http://www.google.com
                    [3] => http://www.baidu.com
                    [4] => http://www.qq.com
                    [5] => http://www.google.com
                )
        
            [1] => Array
                (
                    [0] => http
                    [1] => http
                    [2] => http
                    [3] => http
                    [4] => http
                    [5] => http
                )
        
            [2] => Array
                (
                    [0] => www
                    [1] => www
                    [2] => www
                    [3] => www
                    [4] => www
                    [5] => www
                )
        
            [3] => Array
                (
                    [0] => baidu
                    [1] => qq
                    [2] => google
                    [3] => baidu
                    [4] => qq
                    [5] => google
                )
        
            [4] => Array
                (
                    [0] => com
                    [1] => com
                    [2] => com
                    [3] => com
                    [4] => com
                    [5] => com
                )
        
        )
        */
        preg_match_all($pattern,$string,$matches);
/*---------------------------------------------------------------------------------------------------------*/
        //3.preg_replace
        /*
            替换将string中的字符串以pattern 规则匹配出来的用replace进行limit次替换
        */
       preg_replace($pattern,$replace,$string,$limit);
        
    $pattern ="/<[\/]*[^<>]*>/i";
    $string="这个文本中有<b>粗体</b>和<u>带下划线</u>以及<i>斜体</i>还有<font color='red' size=7>带有颜色和大小</font>的标记";
    //echo $string."<br>";
    $temp_string = preg_replace($pattern,"",$string,1);
    //echo $temp_string."<br>";
    
    
    /*逆向引用
    将 01/25/2009 搜索到的用()进行分割  $(3)  来进行代替 逆向引用
    */
    $pattern="/(\d{2})\/(\d{2})\/(\d{4})/";
    $string="今年春节放假日期为01/25/2009到02/02/2009共七天.";
    $temp_string = preg_replace($pattern,"\${3}-\${1}-\${2}",$string);    
    //echo $temp_string."<br>";
    
    
    /*使用修正符可以将需要替换的文字进行php函数处理并且可以相加*/
    $pattern ="/(<\/?)(\w+)([^>]*>)/e";
    $string="这个文本中有<b>粗体</b>和<u>带下划线</u>以及<i>斜体</i>还有<font color='red' size=7>带有颜色和大小</font>的标记";
    //echo preg_replace($pattern,"'\\1'.md5('\\2').'\\3'",$string);
    
    
    //数组替换
    $string = "将本行文本[b]加粗[/b]
               将本行文本改为[i]斜体[/i]
               将本行文本加上[u]下滑下[/u]
               将本行文字大小为[font=20px][color=red]20px字,红色[/color][/font]
               [algin=center]将本行居中[/algin]
               连接到[url=http://bbs.sha_biwanyi.com]傻逼玩意[/url]
               给[[email protected]]草泥马[/email]发信
               本行[b][i][u][algin=center]本行为加粗,斜体并带有下划线,而且居中的文字[/algin][/u][/i][/b]";
    $pattern=array("/(\r\n)|(\n)/","/\[b\]/i","/\[\/b\]/i","/\[i\]/i","/\[\/i\]/i","/\[u\]/i","/\[\/u\]/i","/\[font=\s*([0-9]*px|em)\s*\]/i","/\[color=\s*(#[0-9]*|[a-zA-z]*)\]/i","/\[algin=(center|left|right)\]/i","/\[url=(https?|ftp):(\/\/)(www|bbs|m)\.([^\W]*)\.(com|cn)\](.*)\[\/url\]/i","/\[email=([^\W]+@[^\W]+)\.([^\W]+)\](.*)\[\/email\]/i","/\[\/font\]/i","/\[\/color\]/i","/\[\/algin\]/i");
    $replace=array("<br>","<b>","</b>","<i>","</i>","<u>","</u>","<span style='font-size:\\1'>","<span style='color:\\1'>","<p style='text-align:\\1'>","<a href='\\1:\\2\\3.\\4.\\5'>\\6</a>","<a href='Mailto:\\1.\\2'>\\3</a>","</span>","</span>","</p>"
    );
     preg_replace($pattern,$replace,$string);
        
        
        
/*---------------------------------------------------------------------------------------------------------*/
        //4.preg_grep
            /*匹配数组中的元素返回与正则表达式匹配成功的数组单元
            Array
            (
                [0] => Linux RedHat9.0
                [1] => Apache2.2.9
                [2] => MySql5.0.51
                [3] => PHP5.6
                [5] => VS2010
            )*/
            $array = array("Linux RedHat9.0","Apache2.2.9","MySql5.0.51","PHP5.6","Winows","VS2010");
            $pattern = "/[a-zA-Z]+(\d|\.)+/";
            $array = preg_grep($pattern,$array);

//=================================================常用数据库函数====================================================

/*---------------------------------------连接数据库-----------------------------------------------------------------*/

//mysql_connect('localhost','root','123456');
//mysql_error();  连接数据库错误信息
//mysql_errno();  连接数据库错误号
$link = mysql_connect('localhost','root','123456') or die('连接错误'.mysql_error());

//mysql_select_db 选择数据库 参数:1.数据库名称 2.建立的连接
mysql_select_db('0537byby',$link) or die('不能够选择数据库:'.mysql_error());


/*---------------------------------------执行inset update  delete  数据库命令-----------------------------------------------*/
/*执行数据库语句
@param str sql语句
@return boolean 成功返回true 失败返回false;
*/

$result = mysql_query($sql);

/*查看一共影响了多少行
@return int 返回影响的行数
*/
$int = mysql_affected_rows();

/*查看插入的最后一条新纪录的AUTO_INCREMENT 值是多少
@return  int 返回影响auto_increment 的最后一行信息
*/
$int= mysql_insert_id();

/*---------------------------------------执行select 查询数据库命令处理结果集-----------------------------------------------*/
//$result = mysql_query($sql);

/*从数据库中获的记录行的个数
@return int 返回行
*/
$rows = mysql_num_rows($result);

/*从数据库中获取列的记录个数
@return int 返回列
*/
$cols = mysql_num_fields($result);

/*将一条记录返回并以一个普通索引数组形式保存
@param array 执行数据库返回的数组
@return array 返回一个索引数组
*/
$row = mysql_fetch_row($result);

/*将一条记录返回并以一个普通关联数组的形式保存
@param array 执行数据库返回的数组
@return array 返回一个关联数组
*/
$row = mysql_fetch_assoc($result);

/*将一条记录返回两种默认形式  关联数组和索引数组
@param array 执行数据库返回的数组
@return array 返回一个结果集
*/
$row = mysql_fetch_array($result);

/*将一返回一条对象的数据
@param array 执行数据库返回的数组
@return object 返回一个对象
*/
$row = mysql_fetch_object($result);

/*---------------------------------------查看信息-----------------------------------------------------------------*/

//客户端API函数库的版本信息
$str = mysql_get_client_info();
  
//与MySql服务器的的连接类型
$str = mysql_get_host_info();

//通信协议的版本信息
$str = mysql_get_server_info();

//客户端使用的默认字符集
$str = mysql_client_encoding();

//MySql服务器的当前工作状态
$str = mysql_stat();

//关闭与MySql服务器建立的连接
mysql_close($link);


//=========================================常用数学函数==============================================================


//求一个数的绝对值
$int=abs(-100);

//返回大于或者等于指定表达式的最小整数(下例为3)
$int=ceil(2.01);

//返回等于指定表达式的最小整数(下例为2)
$int =floor(2.51);

//取多个参数之间的最大值
$int=max(2,43,5,6,7,89,9);

//取多个参数之间的最小值
$int=min(2,43,5,6,7,89,9);

//取两个参数之间的随机数
$int=mt_rand(0,10);

//四舍五入计算
$int=round(2.534);

//$str=number_format(float number,int [decimals],string [dec_point],string [sep]);
//输出:222,222,222.11
//本函数用来将浮点数number格式化,其中第一个参数number指定被格式化的浮点数;第二个参数decimals指定格式化后的小数位数,如果number的小数位多于指定的小数位,则会进行四舍五入;第三个参数dec_point指定整数和小数部分间的分隔符,默认值为".";第四个参数sep指定整数部分中每三位间的分隔符,默认值为","。
$str=number_format(222222222.1111,2,'.',',');



//========================================常用数组方法===============================

$arr=array("k0"=>"a","k1"=>"b","k2"=>"c");

//返回数组元素个数
$int=count($arr);

//判断第二参数的数组元素中是否有第一个参数元素
$bool=in_array("b",$arr);

//返回括号中数组所有键值组成的新数组原数组不改变
$array=array_keys($arr);

//判断第二个参数的数组中是否有第一个参数的键值,返回真假
$bool=array_key_exists("k1",$arr);

//返回原数组中所有元素值组成的新数组,键值从0开始自增,原数组不变
$array=array_values($arr);

//返回当前数组指针指向的键值
$key=key($arr);

//返回当前数组指针指向的元素值
$value=current($arr);

//返回当前数组指针指向元素的键值及元素值组成的数组,再将指针推向下一位,最后指针指向的是一个空元素返回空
//返回的数组中有四个固定键值对应的元素值分别是返回元素的键值及元素值,其中0,'key'键值都对应返回元素键值,1,'value'键值都对应返回的元素值
$array=each($arr);

//先将数组指针推向下一位,再返回指针移动后指向的元素值
$value=next($arr);

//将数组指针推向上一位,再返回指针移动后指向的元素值
$value=prev($arr);

//让数组指针重置指向第一个元素并返回元素值
$value=reset($arr);

//将数组指针指向最后一位元素,并返回最后一位元素值
$value=end($arr);

//将第一个参数以后的参数作为元素追加入第一个参数数组的末尾,索引从最小的没用过的数值开始计,返回之后的数组长度
$int=array_push($arr,"d","dfsd");

//将第一个参数数组后面所有参数作为元素添加到第一个参数数组开头处,键值以0从第一个元素处重新累加,原非数值的键值保持不变,原元素排序位置不变,返回之后的数组长度
$int=array_unshift($arr,"t1","t2");

//返回从数组尾部提取最后一个元素值,并把最后一个元素从原数组中剔除
$value=array_pop($arr);

//array_pop相反,提取返回数组头一个元素值,并把头一个元素从原数组中剔除
$value=array_shift($arr);

//让第一个参数数组达到第二个参数数值长度,将第三个参数作为元素添加到第一个参数数组的末尾,索引从最小没用过数值开始计并返回,原数组不改变
$array1=array_pad($arr,10,"t10");

//返回一个将原数组中多余重复元素剔除掉的新数组,原数组不改变
$array=array_unique($array1);

//将原数组键值打破重新以元素值的阿斯克码值从小到大排序,索引从数字0开始重计
$int=sort($array);

//和sort相反,以元素值阿斯柯码值大小降序重新排序,索引从0重新计
$int=rsort($array);

//返回将第一个参数数组中每一个元素值依次作为键值付给参数二数组的数组,两数组长度必须一致,原数组不改变
$array=array_combine(array("a","b","c","d","e"),$arr);

//将两个数组合并并返回原数组不变
$array=array_merge($arr,array("a","b","c"));

//在第一个参数数组中从第二个参数数值位置开始截取到第三个参数数值长度的数组键值+元素并返回,数组第一个元素位置从0计
$array=array_slice($arr,2,1);

//截取功能和array_slice()一样,只是将截取部分在原数组中剔除
$array=array_splice($arr,2,1);

//将第一个参数作为第一个元素,每次自增参数三的值,自增后再作为一个元素存在数组中,直到值达到参数二的值存到数组中为止并返回这个数组
//参数一,参数二可以是数字,可以是单个字符,单字符就按阿斯柯码值算,第三个参数不写默认每次自增1
$array=range(3,9,2);

//将原数组元素与对应键值的对应关系重新随机排列返回真假
$bool=shuffle($arr);

//计算数组中所有数值型元素值的和
$int=array_sum(array("a",2,"cssf"));


//把一个数组分割为新的数组块,新数组每个元素都是一个数组,新数组每个元素内有几个元素由参数二决定
//第三个参数决定元素的键值是否保留原键值可不写,true为保留,默认false不保留
$array=array_chunk(array("a"=>"a","b","c","d","e","f","g","h"),2,true);


//json_encode()将数组转换成JSON格式字符串返回
$arr = array('k1'=>'val1','k2'=>'val2','k3'=>array('v3','v4'));
//echo $encode_str = json_encode($arr);

//json_decode()将JSON格式字符串转换成能强制转换成数组的对象返回,JSON格式字符串中键与值需要引号括起来时必须用双引号
$decode_arr = (array)json_decode($encode_str);
//var_dump($decode_arr);

//===============================常用文档操作函数===============================

/*-------------------------------------文件类型--------------------------------------------------------------*/
/*获取文件类型
@param string 文件的路径
@retrun string 返回文件类型
*/
$str = filetype('C:/SWSetup');

is_dir('C:/SWSetup'); //判断是不是目录

is_file('C:/SWSetup'); //判断是不是文件

is_executable('C:/SWSetup'); //判断是不是可执行文件

is_readable('C:/SWSetup'); //判断是不是可读文件

is_writable('C:/SWSetup'); //判断是不是可写文件

is_link('C:/SWSetup'); //判断是不是快捷方式

/*-------------------------------------文件属性--------------------------------------------------------------*/

file_exists('C:/SWSetup'); //文件是否存在

//文件大小 返回的是一个btye
$str = filesize('C:/Navicat_for_MySQL_11.0.10_XiaZaiBa.exe');
$str = GetFileSize($str);

            /*文件大小计算函数*/
            function GetFileSize($size){
            $dw="Byte";
            if($size >= pow(2,40)){
                $size=round($size/pow(2,40),2);
                $dw="TB";
            }else if($size >= pow(2,30)){
                $size=round($size/pow(2,30),2);
                $dw="GB";
            }else if($size >= pow(2,20)){
                $size=round($size/pow(2,20),2);
                $dw="MB";
            }else if($size >=pow(2,10)){
                $size=round($size/pow(2,10),2);
                $dw="KB";
            }else{
                $dw="Bytes";
            }
            return $size.$dw;
        }

//文件创建时间 返回的是一个UNIX时间戳 
$str = date('Y-m-d',filectime('C:/Navicat_for_MySQL_11.0.10_XiaZaiBa.exe'));   

//文件修改时间  返回的是一个UNIX时间戳 
$str = date('Y-m-d',filemtime('C:/Navicat_for_MySQL_11.0.10_XiaZaiBa.exe')); 

//文件最后访问的时间  返回的是一个UNIX时间戳 
$str = date('Y-m-d',fileatime('C:/Navicat_for_MySQL_11.0.10_XiaZaiBa.exe')); 
  
//文件的状态 返回的是一个数组  
$arr = stat('C:/Navicat_for_MySQL_11.0.10_XiaZaiBa.exe');
/*
        Array
        (
            [0] => 2
            [1] => 0
            [2] => 33279
            [3] => 1
            [4] => 0
            [5] => 0
            [6] => 2
            [7] => 13086564
            [8] => 1399013467
            [9] => 1399013468
            [10] => 1399013466
            [11] => -1
            [12] => -1
            [dev] => 2
            [ino] => 0
            [mode] => 33279
            [nlink] => 1
            [uid] => 0
            [gid] => 0
            [rdev] => 2
            [size] => 13086564
            [atime] => 1399013467
            [mtime] => 1399013468
            [ctime] => 1399013466
            [blksize] => -1
            [blocks] => -1
        )
*/

/*-------------------------------------文件函数--------------------------------------------------------------*/
//取文件名 返回Monokai.xml;
$str = basename('C:/Program Files/Notepad++/themes/Monokai.xml');

//取文件目录名称,如要想要取上一级 只需要嵌套就可以driname(driname(url));
$str = dirname('C:/Program Files/Notepad++/themes/Monokai.xml');

//路径信息; 返回的是一个数组
$array = pathinfo('C:/Program Files/Notepad++/themes/Monokai.xml');
/*
            Array
            (
                [dirname] => C:/Program Files/Notepad++/themes
                [basename] => Monokai.xml
                [extension] => xml
                [filename] => Monokai
            )
*/


//文件扩展名
$str = get_extension('C:/Program Files/Notepad++/themes/Monokai.xml');
function get_extension($file)
{
$info = pathinfo($file);
return $info['extension'];
} 

/*-------------------------------------文件基本操作函数--------------------------------------------------------------*/

/*文件的创建
@param string 文件路径
@param date  文件创建时间UNIX 时间 省略默认系统时间
@param date  文件访问时间UNIX 时间 省略默认系统时间
@return bool 创建成功返回true 失败 false
*/
touch("C:/Program Files/Notepad++/themes/myphp.txt",time()-3000,time()-2000);

/*文件的删除
@param string 文件路径
@return bool 删除成功返回true 失败 false
*/
unlink("C:/Program Files/Notepad++/themes/myphp.txt");

/*移动文件(重命名文件)
@param string 当前文件路径
@param string 目标文件路径
@return bool 成功返回true 失败 false
*/
rename('C:/Program Files/Notepad++/themes/copyme.txt','C:/copyme.txt');

/*复制文件(重命名文件)
@param string 当前文件路径
@param string 目标文件路径
@return bool 成功返回true 失败 false
*/
copy('C:/Program Files/Notepad++/themes/copyme.txt','C:/copyme.txt');


/*-------------------------------------读取文件操作函数--------------------------------------------------------------*/
//将C:/1.txt文件从20个字符开始读取14个字符
$str   = file_get_contents('C:/1.txt', NULL, NULL, 0, 14);

//将读取一个网络文件
$str   = file_get_contents('http://www.baidu.com');

//把整个文件读入一个数组中,每一个元素对应一行 
$str = file('C:/1.txt');

//读入一个文件并写入到输出缓冲区不用再使用each
//readfile('C:/1.txt');

/*将filename 指定的名字资源绑定到一个流上。 
@param string 打开文件或者 URL 
@param string 参数指定了所要求到该流的访问类型 r, r+, w, w+ ,a ,a+, x, x+,c,c+
@return object 返回打开的文件指针
*/
$handle = fopen('C:/1.txt','r');

/*从文件指针handl中读取100个字符
@param object 文件指针
@pream int 读取多少字符
@return string 返回读取到的字符
*/
$str = fread($handle,100);

/*从文件句柄中获取一个字符。
@param object 文件指针
@return string 返回一个字符
*/
$str =  fgetc($handle);

/*从文件句柄中获取一个行。
@param object 文件指针
@return string 返回一个行
*/
$str =  fgets($handle);

//判断文件结尾
feof($handle);

/*在与 handle 关联的文件中设定文件指针位置。新位置从文件头开始以字节数度量,是以whence 指定的位置加上多少个
@param object 文件指针
@param whence 
1.SEEK_SET - 设定位置等于 offset 字节。
2.SEEK_CUR - 设定位置为当前位置加上 offset。
3.SEEK_END - 设定位置为文件尾加上 offset。
@param int 加上多少个字符
@return boolean  成功true 失败 false
*/
fseek($handle,10);


/*指向的文件关闭。 
@param object 文件指针
@return bool 是否关闭成功
*/
fclose($handle);
/*-------------------------------------写入文件操作函数--------------------------------------------------------------*/

/*向指定文件写入文件功能类似 fopen() fwrite() fclose() 函数一样
@param string 文件的路径
@param string 文件的内容 可以使一个字符串也可以是一个数组 (不能使多维数组)
@param 
FILE_USE_INCLUDE_PATH 在 include 目录里搜索 filename
FILE_APPEND 如果文件 filename 已经存在,追加数据而不是覆盖 
LOCK_EX在写入时获得一个独占锁。  
*/
file_put_contents('C:/1.txt',"写入的内容",FILE_APPEND | LOCK_EX);

/*使用a可以在文件的结尾处进行写入不像使用w一样覆盖文件*/
/*使用r+可以在文件的开头处进行写入不像使用w一样覆盖文*/
//把 string 的内容写入 文件指针 handle 处。 
fwrite($handle,"常用文件操======作");


//获取文件类型
//===============================常用文件操作函数===============================

//打开文件 返回一个文件句柄
$handle = opendir("E:/www/test");

//读取文件 返回该文件下文件名
$filename = readdir($handle);

//剪切 重命名 原路径/ 现在的路径 
rename ( "/tmp/tmp_file.txt" ,  "/home/user/login/docs/my_file.txt" );
echo "</pre>";





//===============================常用图像处理函数===============================
/*创建画布,返回一个资源类型的变量$image,并在内存中开辟一块临时区域
*@param int x_size
*@param int y_size
*@return object $img
*/
$img = imagecreatetruecolor(200,200);
echo imagesx($img);  //输出画布宽度200
echo imagesy($img);  //输出画布长度200

/*设置颜色  第一次调用的时候会给图像增加一个背景颜色
*@param $objec  一个图像句柄
*@param int $red  
*@param int $green
*@param int $blue
*@return 颜色  
*/
$backgorund = imagecolorallocate($img,255,0,0);
$white = imagecolorallocate($img,255,255,255);
$black = imagecolorallocate($img,0,0,0);

/*生成图像,可以将动态绘制的画布,直接输出为GIF,JPEG,PNG,WBMP四种格式
*使用header发送标头信息,用来通知浏览器使用正确的MIME类型进行解析
*@param resource $image 图像句柄
*/
bool imagegif();
bool imagejpeg();
bool imagepng();
bool imagewbmp();
header("Content-type:image/gif");
imagegif($img);

 /*---------------------------------------绘制图像--------------------------*/
 
 
/*区域填充
*@param resource 图像句柄
*@param int X点坐标
*@param int Y点坐标
*@param int color 颜色
*@return bool  成功true 失败 false
*/
imagefill($img,$x,$y,$color);

//
ImageSetPixel($img,$x,$y,$color);

//线
ImageLine($img,$x1,$y1,$x2,$y2,$color);

//矩形
ImageRectangle($img,$x1,$y1,$x2,$y2,$color);          //画一个矩形
ImageFilledRectangle($img,$x1,$y1,$x2,$y2,$color);  //画一个填充矩形

//绘制多边形:
ImagePolyGon($img,$points,$num_points,$color);        //画一个多边形
ImageFilledPolyGon($img,$points,$num_points,$color);    //画一个多边形并且填充

//绘制椭圆:
/*绘制一个椭圆
*@param resource 图像句柄
*@param int 圆心x坐标
*@param int 圆心y坐标
*@param int 圆的宽度
*@param int 圆的高度
*@param int 圆的颜色
*@return 成功  true,  失败false
*/
ImageEllipse($image,$cx,$cy,$w,$h,$color);

ImageFilledEllipse($image,$cx,$cy,$w,$h,$color);  //画一个椭圆并填充

//弧线
/*绘制一个椭圆
*@param resource image  图像句柄
×@param int cx  弧形心x坐标
×@param int cy  弧形心y坐标
×@param int w   弧形宽度
×@param int h   弧形高度
×@param int s   弧形开始的弧度
×@param int e   弧形开始的弧度
*@param int color 颜色
IMG_ARC_CHORD 只是用直线连接了起始和结束点, 
IMG_ARC_PIE 则产生圆形边界。
IMG_ARC_NOFILL 指明弧或弦只有轮廓,不填充。 
IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,和 
IMG_ARC_NOFILL 一起使用是画饼状图轮廓的好方法(而不用填充)。
*@return 成功  true,  失败false
*/
ImageArc($image,$cx,$cy,$w,$h,$s,$e,$color);
ImageFilledArc($image,$cx,$cy,$w,$h,$s,$e,$color,$style);   //画一个弧形并填充
bool imagedestroy($img);    //销毁一个资源
?>

猜你喜欢

转载自blog.csdn.net/m0_37412958/article/details/80204069