文章目录
- fopen() 打开文件或者 URL
- fsockopen()打开一个网络连接或者一个Unix套接字连接
- fwrite () 写入文件
- basename() 返回路径中的文件名部分。
- copy()复制文件
- dirname () 返回路径中的目录部分
- disk_free_space () 返回目录中的可用空间
- disk_total_space () 返回一个目录的磁盘总大小
- fclose 关闭一个已打开的文件指针
- feof() 测试文件指针是否到了文件结束的位置
- fgetc 从文件指针中读取一个字符
- fgets 从文件指针中读取一行
- fgetss() 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。
- file() 把整个文件读入一个数组中
- file_exists ( string $filename ) : bool 检查文件或目录是否存在
- file_get_contents () 将整个文件读入一个字符串
- file_put_contents 将一个字符串写入文件
- filesize() 函数返回指定文件的大小 ,返回字节数
- filetype() 返回指定文件或目录的类型。
- flock() 锁定或释放文件
- unlink() 删除文件
- fgetcsv() 从文件指针中读入一行并解析 CSV 字段
- fputcsv() 将行格式化为 CSV 并写入文件指针
- fpassthru() 函数输出文件指针处的所有剩余数据
- parse_ini_file() 函数解析一个配置文件,并以数组的形式返回其中的设置。
- pathinfo() 以数组的形式返回文件路径的信息
- realpath() 返回文件的绝对路径
- rename() 函数重命名文件或目录
- mkdir() 创建目录
- move_uploaded_file() 将上传的文件移动到新位置
- rmdir() 删除空目录
- touch() 设置指定文件的访问和修改时间
- unlink() 删除文件
- fseek() 在打开的文件中定位
- rewind() 将文件指针的位置倒回文件的开头。
- glob() 寻找与模式匹配的文件路径
- scandir() 列出指定路径中的文件和目录
- opendir() 打开目录
- readdir() 获取打开目录中的一条子目录/文件名称
- closedir(); 关闭目录
- is_dir() 判断指定的文件名是否是一个目录。
- is_executable() 判断文件是否可执行。
- is_file() 判断指定文件是否为常规的文件。
- is_link() 判断指定的文件是否是连接。
- is_readable() 判断文件是否可读。
- is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的。
- is_writable() 判断文件是否可写。
- 统计指定文件夹下的所有文件跟目录数
demo.txt 内容:
this is demo.txt 1
this is demo.txt 2
this is demo.txt 3
this is demo.txt 4
this is demo.txt 5
this is demo.txt 6
this is demo.txt 7
this is demo.txt 8
this is demo.txt 9
fopen() 打开文件或者 URL
fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] ) : resource
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
fsockopen()打开一个网络连接或者一个Unix套接字连接
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br />\n";
} else {
fwrite($fp, "\n");
echo fread($fp, 26);
fclose($fp);
}
fwrite () 写入文件
fwrite ( resource $handle , string $string [, int $length ] ) : int
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
basename() 返回路径中的文件名部分。
echo "1) ".basename("/etc/sudoers.d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
/*
1) sudoers.d
2) sudoers
3) passwd
4) etc
5) .
6)
*/
copy()复制文件
copy ( string $source , string $dest [, resource $context ] ) : bool
echo copy("要复制的文件路径/链接.txt","target.txt");//bool(true/false)
dirname () 返回路径中的目录部分
dirname ( string $path ) : string
echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or \ on Windows)
echo "3) " . dirname("."); // 3) .
disk_free_space () 返回目录中的可用空间
disk_free_space ( string $directory ) : float
echo disk_free_space('c:');//37684822016 返回可用的字节数。
disk_total_space () 返回一个目录的磁盘总大小
disk_total_space ( string $directory ) : float
echo disk_total_space('c:');//118409187328 字节数
fclose 关闭一个已打开的文件指针
fclose ( resource $handle ) : bool
$handle = fopen('somefile.txt', 'r');
fclose($handle);
feof() 测试文件指针是否到了文件结束的位置
feof ( resource $handle ) : bool
$file = fopen("demo.txt", "r");
//输出文本中所有的行,直到文件结束为止。
while(!feof($file))
{
echo fgets($file);
}
fclose($file);
fgetc 从文件指针中读取一个字符
fgetc ( resource $handle ) : string
$file = fopen("demo.txt", "r");
echo fgetc($file);//t
fgets 从文件指针中读取一行
fgets ( resource $handle [, int $length ] ) : string
$file = fopen("demo.txt", "r");
echo fgets($file,2048);//this is demo.txt 1
fgetss() 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。
fgetss ( resource $handle [, int $length [, string $allowable_tags ]] ) : string
demo.txt
<div><p><span>this is demo.txt 1</span></p></div>
demo.php
$file = fopen("demo.txt", "r");
echo fgetss($file,1024,'<span><p>');
//<p><span>this is demo.txt 1</span></p>
file() 把整个文件读入一个数组中
file ( string $filename [, int $flags = 0 [, resource $context ]] ) : array
demo.txt
<div><p><span>this is demo.txt 1</span></p></div>
this is demo.txt 2
this is demo.txt 3
this is demo.txt 4
this is demo.txt 5
this is demo.txt 6
this is demo.txt 7
this is demo.txt 8
this is demo.txt 9
print_r( file('demo.txt',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));
/*
Array
(
[0] => <div><p><span>this is demo.txt 1</span></p></div>
[1] => this is demo.txt 2
[2] => this is demo.txt 3
[3] => this is demo.txt 4
[4] => this is demo.txt 5
[5] => this is demo.txt 6
[6] => this is demo.txt 7
[7] => this is demo.txt 8
[8] => this is demo.txt 9
)*/
file_exists ( string $filename ) : bool 检查文件或目录是否存在
file_get_contents () 将整个文件读入一个字符串
file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) : string
echo file_get_contents('demo.txt');
/*
<div><p><span>this is demo.txt 1</span></p></div>
this is demo.txt 2
this is demo.txt 3
this is demo.txt 4
this is demo.txt 5
this is demo.txt 6
this is demo.txt 7
this is demo.txt 8
this is demo.txt 9
*/
echo file_get_contents('demo.txt',false,null,1,10);//div><p><sp
file_put_contents 将一个字符串写入文件
file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int
该函数将返回写入到文件内数据的字节数,失败时返回FALSE
echo file_put_contents('demo.txt','this is yzx',FILE_APPEND);
filesize() 函数返回指定文件的大小 ,返回字节数
filetype() 返回指定文件或目录的类型。
flock() 锁定或释放文件
flock( resource $handle , int $operation [, int &$wouldblock ] ) : bool
$file= fopen("demo.txt", "r+");
// 排它性的锁定
if (flock($file,LOCK_EX ))
{
fwrite($file,"Write something fsdfsadf");
// release lock
flock($file,LOCK_UN);
echo 111;
}
else
{
echo "Error locking file!";
}
fclose($file);
unlink() 删除文件
若成功,则返回 true,失败则返回 false。
fgetcsv() 从文件指针中读入一行并解析 CSV 字段
fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = ',' [, string $enclosure = '"' [, string $escape = '\\' ]]]] ) : array
$file = fopen("demo.csv","r");
print_r(fgetcsv($file)) ;
fclose($file);die;
fputcsv() 将行格式化为 CSV 并写入文件指针
fputcsv ( resource $handle , array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]] ) : int
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
fpassthru() 函数输出文件指针处的所有剩余数据
$file = fopen("demo.txt","r");
// 读取第一行
fgets($file);
// 把文件的其余部分发送到输出缓存
echo fpassthru($file);
fclose($file);
parse_ini_file() 函数解析一个配置文件,并以数组的形式返回其中的设置。
test.ini
[names]
me = Robert
you = Peter
[urls]
first = "http://www.example.com"
second = "http://www.w3school.com.cn"
demo.php
print_r(parse_ini_file("test.ini"));
/*
Array
(
[me] => Robert
[you] => Peter
[first] => http://www.example.com
[second] => http://www.w3school.com.cn
)
*/
print_r(parse_ini_file("test.ini",true));
Array
(
[names] => Array
(
[me] => Robert
[you] => Peter
)
[urls] => Array
(
[first] => http://www.example.com
[second] => http://www.w3school.com.cn
)
)
pathinfo() 以数组的形式返回文件路径的信息
var_dump(pathinfo('http://blog.yaozhixiong.top/php/index.php'));
array(4) {
'dirname' =>
string(31) "http://blog.yaozhixiong.top/php"
'basename' =>
string(9) "index.php"
'extension' =>
string(3) "php"
'filename' =>
string(5) "index"
}
realpath() 返回文件的绝对路径
rename() 函数重命名文件或目录
mkdir() 创建目录
若成功,则返回 true,否则返回 false。
move_uploaded_file() 将上传的文件移动到新位置
若成功,则返回 true,否则返回 false。
rmdir() 删除空目录
只能删除空的目录 且不能递归删除
touch() 设置指定文件的访问和修改时间
文件不存在会被创建
unlink() 删除文件
若成功,则返回 true,失败则返回 false。
fseek() 在打开的文件中定位
$file = fopen("demo.txt","r");
fseek($file,3);
// 读取第一行
echo fgets($file);//v><p><span>this is demo.txt 1</span></p></div>
rewind() 将文件指针的位置倒回文件的开头。
$file = fopen("demo.txt","r");
fseek($file,3);
// 读取第一行
echo fgets($file);//v><p><span>this is demo.txt 1</span></p></div>
echo fgets($file);//this is demo.txt 2
rewind($file);
echo fgets($file);//<div><p><span>this is demo.txt 1</span></p></div>
若成功,则返回 true。若失败,则返回 false。
glob() 寻找与模式匹配的文件路径
rint_r(glob("*.txt"));
Array
(
[0] => target.txt
[1] => source.txt
[2] => test.txt
[3] => test2.txt
)
scandir() 列出指定路径中的文件和目录
scandir ( string $directory [, int $sorting_order [, resource $context ]] ) : array
opendir() 打开目录
readdir() 获取打开目录中的一条子目录/文件名称
closedir(); 关闭目录
is_dir() 判断指定的文件名是否是一个目录。
is_executable() 判断文件是否可执行。
is_file() 判断指定文件是否为常规的文件。
is_link() 判断指定的文件是否是连接。
is_readable() 判断文件是否可读。
is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的。
is_writable() 判断文件是否可写。
统计指定文件夹下的所有文件跟目录数
$numdir = $numfile = 0;
function foo ($dir)
{
global $numdir,$numfile;
foreach (scandir($dir) as $key => $val)
{
if ($val !== '.' && $val !== '..')
{
if ( is_dir($file = $dir.'/'.$val))
{
++$numdir;//目录数
foo($file);
}
if ( is_file($dir.'/'.$val))
{
++$numfile;//文件数量
}
}
}
}
foo('laravel');
echo '目录数:'.$numdir.PHP_EOL;
echo '文件数:'.$numfile;