10、fwrite — 写入文件(可安全用于二进制文件)
$filePath = "1.txt";
//写入文件,如果文件不存在则尝试创建之。如果原文件有内容,会被清空。
$fp = fopen($filePath, "wb");
//写入文件,将内容追加到原文件内容的末尾。如果文件不存在则尝试创建之。
//$fp = fopen($filePath,"ab");
fwrite($fp, "\t\n欲穷千里目,\t\n更上一层楼!");
fclose($fp);
11、file_put_contents — 将一个字符串写入文件。和依次调用 fopen() , fwrite() 以及 fclose() 功能一样。循环写入内容时,不建议使用此方法!
(1)语法:int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
(2)第二个参数data: 要写入的数据。类型可以是 string , array 或者是 stream 资源。
如果 data 指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。
参数 data 可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename, join('', $array))。
(3)第三个参数:flags 的值可以是 以下, 使用 OR (|) 运算符进行的组合。
FILE_USE_INCLUDE_PATH 在 include 目录里搜索 filename。
FILE_APPEND 如果文件 filename 已经存在,追加数据而不是覆盖。
LOCK_EX 在写入时获得一个独占锁。
$filePath = "2.txt";
$content = "\r\n咬定青山不放松,\r\n立根原在破岩中。\r\n千磨万击还坚劲,\r\n任尔东西南北风。";
//写入
file_put_contents($filePath,$content);
//追加
//file_put_contents($filePath,$content,FILE_APPEND);
12、mkdir — 新建目录
(1)语法:bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
(2)第二个参数mode:默认的 mode 是 0777,意味着最大可能的访问权。mode 在 Windows 下被忽略。
(3)第三个参数$recursive:是否建立多层目录。
header("Content-Type:text/html; charset=utf-8");
$newDir = "E:/newdir";
$newDirC = "E:/中文目录";
$encodeNewDirC = iconv("utf-8","gbk",$newDirC); //转换字符编码
if(!is_dir($newDir) && mkdir($newDir)){
echo "创建目录成功";
}else{
echo "创建目录失败!";
}
//创建中文目录的处理方法,强烈建议不要使用中文
if(!is_dir($encodeNewDirC) && mkdir($encodeNewDirC)){
echo "创建中文目录成功";
}else{
echo "创建中文目录失败!";
}
//一次建立多层目录
$newNestDir = "E:/a/b/c";
$newNestDirC = "E:/中文a/中文b/c";
$encodeNestDirC = iconv("utf-8","gbk",$newNestDirC); //转换字符编码
if(!is_dir($newNestDir)){
if(mkdir($newNestDir,0777,true)){
echo "创建目录成功";
}else{
echo "创建目录失败!";
}
}else{
echo "比文件夹已存在!";
}
//含有中文的处理,建立建议不要使用中文
if(!is_dir($encodeNestDirC)){
if(mkdir($encodeNestDirC,0777,true)){
echo "创建目录成功";
}else{
echo "创建目录失败!";
}
}else{
echo "比文件夹已存在!";
}
13、rmdir — 删除目录
(1)删除目录时, 该目录必须是空的,而且要有相应的权限。 失败时会产生一个 E_WARNING 级别的错误。
(2)返回值:成功时返回 TRUE , 或者在失败时返回 FALSE 。
header("Content-Type:text/html; charset=utf-8");
$dir = "E:/newDir";
$dirC = "E:/中文目录";
$encodeDirC = iconv("utf-8","gbk",$dirC); //转换字符编码,从UTF-8,转换为gbk
if(is_dir($dir)){
if(rmdir($dir)){
echo "删除成功!";
}else{
echo "删除失败!";
}
}else{
echo "目录不存在!请检查!";
}
if(is_dir($encodeDirC)){
if(rmdir($encodeDirC)){
echo "删除成功!";
}else{
echo "删除失败!";
}
}else{
echo "目录不存在!请检查!";
}
14、创建文件:写入文件内容时,如果文件不存在,会自动创建文件。
15、unlink - 删除文件
header("Content-Type:text/html; charset=utf-8");
$file = "E:/new name.jpg";
$fileC = "E:/中文/which step.jpg"; //还是中文问题处理
$encodefileC = iconv("utf-8","gbk",$fileC); //转换字符编码
if(is_file($file)){
if(unlink($file)){
echo "删除成功!";
}else{
echo "删除失败!";
}
}else{
echo "文件不存在!";
}
//含中文的处理
if(is_file($encodefileC)){
if(unlink($encodefileC)){
echo "删除成功!";
}else{
echo "删除失败!";
}
}else{
echo "文件不存在!";
}
16、copy — 拷贝文件
(1)语法:bool copy ( string $source , string $dest [, resource $context ] )
(2)第二个参数dest:目标路径。如果目标文件已存在,将会被覆盖。如果 dest 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。
header("Content-Type:text/html; charset=utf-8");
$source = "G:/which step.jpg";
$dest = "E:/new name.jpg";
$dest2 = "E:/中文/which step.jpg"; //路径中含有中文时
$encodeDest2 = iconv("utf-8","gb2312",$dest2); //转换字符编码
if(copy($source,$dest)){
echo "拷贝$source 到$dest 成功!";
}else{
echo "拷贝失败!";
}
//含中文路径的拷贝
if(copy($source,$encodeDest2)){
echo "拷贝$source 到$dest2 成功!";
}else{
echo "拷贝失败!";
}