PHP에는 다양한 종류의 파일 작업 함수가 있습니다. 오늘은 PHP에서 일반적으로 사용되는 파일 작업 함수를 공유하겠습니다. 이제 PHP 파일 작업에는 어떤 기능이 있는지 살펴보겠습니다.
1 PHP는 파일 이름을 가져옵니다.
basename - 경로의 파일 이름 부분을 반환합니다.
는 파일의 전체 경로가 포함된 문자열을 제공하고, 이 함수는 기본 파일 이름을 반환합니다. 파일 이름이 접미사로 끝나면 이 부분도 제거됩니다.
string basename ( string $path [, string $suffix ] )
$path = "/home/cate/index/index2.php"; $file = basename($path); echo $file.'<br>'; //index2.php
$file2 = basename($path,'.php'); echo $file2; //index2
$file3 = basename($path,'2.php'); echo $file2; //index
2 php는 디렉토리 이름
dirname을 가져옵니다 — 경로의 디렉토리 부분을 반환합니다. path )
파일의 전체 경로가 포함된 문자열이 주어지면 이 함수는 파일 이름을 제거한 후 디렉터리 이름을 반환합니다.
echodirname(
__FILE__);__FILE__은 현재 파일의 경로를 가리킵니다. 이는 getcwd();
3 php가 경로를 가져옵니다 연관 배열
pathinfo - 반환 파일 경로 정보
pathinfo()
path 정보가 포함된 연관 배열을 반환합니다. 다음 배열 단위를 포함합니다: dirname, basename 및 extension. 매개변수 옵션을 통해 반환할 단위를 지정할 수 있습니다. 여기에는
PATHINFO_DIRNAME, PATHINFO_BASENAME 및 PATHINFO_EXTENSION이 포함됩니다. 기본값은 모든 단위를 반환하는 것입니다. 모든 단위를 얻을 필요가 없는 경우 이 함수는 문자열을 반환합니다. <?php
$path_parts = pathinfo("/home/cate/index.action.html");
// /home/cate 文件目录
echo $path_parts["dirname"] . "<br/>";
// index.action.html 文件名
echo $path_parts["basename"] . "<br/>";
// html 扩展名
echo $path_parts["extension"] . "<br/>";
//直接获取扩展名
echo pathinfo("/home/cate/index.action.html", PATHINFO_EXTENSION);
4 fopen 함수 — 파일 또는 URL 열기
resource fopen ( string $filename , string $mode [, bool $use_include_path [, resources $zcontext ]] )
읽기 전용 모드로 열고 파일 포인터로 파일 헤더를 가리킵니다. |
|||||||||||||||||||||||
읽기-쓰기 모드로 열고 파일 포인터가 파일 헤더를 가리킵니다. |
|||||||||||||||||||||||
쓰기 모드로 열고 파일 포인터를 파일 헤더로 가리키고 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. |
|||||||||||||||||||||||
읽기-쓰기 모드로 열고 파일 포인터를 파일 헤더로 가리키고 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. |
|||||||||||||||||||||||
쓰기 모드로 열고 파일 포인터를 파일 끝으로 가리킵니다. 파일이 존재하지 않으면 생성해 보십시오. |
|||||||||||||||||||||||
읽기-쓰기 모드로 열고 파일 포인터를 파일 끝으로 가리킵니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. |
|||||||||||||||||||||||
파일 포인터를 파일 헤더로 지정하여 쓰기용으로 만들고 엽니다. 파일이 이미 존재하는 경우 fopen() | 호출이 실패하고 FALSE 를 반환하며 E_WARNING 수준 오류 메시지를 생성합니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. 이는 기본 open(2) 시스템 호출에 O_EXCL|O_CREAT 플래그를 지정하는 것과 같습니다. 이 옵션은 PHP 4.3.2 이상에서 지원되며 로컬 파일에만 사용할 수 있습니다. |
||||||||||||||||||||||
읽기-쓰기 모드로 만들고 열어 파일 포인터를 파일 헤더로 지정합니다. 파일이 이미 존재하는 경우 fopen() | 호출이 실패하고 FALSE 를 반환하며 E_WARNING 수준 오류 메시지를 생성합니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. 이는 기본 open(2) 시스템 호출에 O_EXCL|O_CREAT 플래그를 지정하는 것과 같습니다. 이 옵션은 PHP 4.3.2 이상에서 지원되며 로컬 파일에만 사용할 수 있습니다. <?php $handle = fopen("doc.txt", "r"); var_dump($handle); D:\wamp\www\test\jsontest.php:3:resource(3, stream) <?php $file = fopen('newtxt.txt','w') or die ('无法打开文件');//不存在则自动创建 $data = 'you are a coder!'; fwrite($file,$data); $data = 'you are a MAN!'; fwrite($file,$data); fclose($file); 5 fstat函数— 通过已打开的文件指针取得文件信息 array fstat ( resource $handle ) 获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。 返回一个数组具有该文件的统计信息,该数组的格式详细说明于手册中 stat() 页面里。 <?php // 打开文件 $fp = fopen("doc.txt", "r"); // 取得统计信息 $fstat = fstat($fp); // 关闭文件 fclose($fp); // 只显示关联数组部分 //print_r(array_slice($fstat, 13)); print_r($fstat); //获取一个文件信息数组包括索引和关联数组 array_slice — 从数组中取出一段 返回数组 array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] ) array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。 如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。 如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。 <?php $input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // returns "c", "d", and "e" $output = array_slice($input, -2, 1); // returns "d" $output = array_slice($input, 0, 3); // returns "a", "b", and "c" // note the differences in the array keys print_r(array_slice($input, 2, -1)); print_r(array_slice($input, 2, -1, true));
6 filesize函数— 取得文件大小 int filesize ( string $filename ) 返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。 <?php $filename = 'doc.txt'; echo $filename.':'.filesize($filename).'bytes'; doc.txt:46bytes 7.disk_free_space函数— 返回目录中的可用空间 float disk_free_space ( string $directory ) 给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。 <?php echo disk_free_space("C:").'<br/>'; echo disk_free_space("D:").'<br/>'; echo disk_free_space("/"); 71001600000 disk_total_space — 返回一个目录的磁盘总大小 8 fileatime函数— 取得文件的上次访问时间 filectime — 取得文件的 inode 修改时间 filemtime — 取得文件修改时间 9 file函数— 把整个文件读入一个数组中 <?php $myfile = 'doc.txt'; $lines = file($myfile); for($i=0,$len = count($lines);$i<$len;$i++){ echo mb_convert_encoding($lines[$i], "UTF-8", "GBK").'<br/>'; } 我是一个新手程序员,需要慢慢努力才能有所收获1! mb_convert_encoding($lines[$i], "UTF-8", "GBK") 将每一行原来的WINDOWS下GBK格式的数据$lines[$i]转换为UTF-8格式 string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] ) <?php $myfile = 'doc.txt'; $encoding = mb_detect_encoding($myfile, array('GBK','UTF-16','UCS-2','UTF-8','BIG5','ASCII')); echo $encoding; CP936 即GBK mb_detect_encoding — 侦测字符集 第一个为文件或者路径 第二个为可能的字符集 10 fgets函数— 从文件指针中读取一行 string fgets ( int $handle [, int $length ] ) 从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。 出错时返回 FALSE。 <?php $handle = fopen('doc.txt','r'); if ($handle){ while (!feof($handle)){ $data[] = fgets($handle,1024); } print_r($data); fclose($handle); } Array ( [0] => 我是一个新手程序员,需要慢慢努力才能有所收获1! [1] => 我是一个新手程序员,需要慢慢努力才能有所收获2! [2] => 我是一个新手程序员,需要慢慢努力才能有所收获3! [3] => 我是一个新手程序员,需要慢慢努力才能有所收获4! [4] => 我是一个新手程序员,需要慢慢努力才能有所收获5! [5] => 我是一个新手程序员,需要慢慢努力才能有所收获6! ) feof — 测试文件指针是否到了文件结束的位置 如果服务器没有关闭由 fsockopen() 所打开的连接,feof() 会一直等待直到超时而返回 TRUE。默认的超时限制是 60 秒,可以使用 stream_set_timeout() 来改变这个值。 fclose — 关闭一个已打开的文件指针 11 fgetss函数—— 从文件指针中读取一行并过滤掉 HTML 标记 可以用可选的第三个参数指定哪些标记不被去掉 file_exists — 检查文件或目录是否存在 bool file_exists ( string $filename ) 如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。 12 file_put_contents函数— 将一个字符串写入文件 int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] ) 和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。 filename 要写入数据的文件名
<?php echo file_put_contents('doc.txt','你是一个程序员7',FILE_APPEND ); 返回字节数22 如果文件不存在,则创建文件,相当于fopen()函数行为。 如果文件存在,默认将清空文件内的内容,可设置 flags 参数值为 FILE_APPEND 以避免。 file_put_contents 函数可安全用于二进制对象。 如果对于确定已经存在的文件,最好进行一个判断 if (file_exists('test.txt')) { file_put_contents('test.txt','contents' ); } 相关推荐: |
위 내용은 PHP 파일 작업 기능이란 무엇입니까? PHP에서 일반적으로 사용되는 파일 작업 기능 요약(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!