PHP 파일의 공통 함수 및 상수

파일 연산을 위한 상수

가장 많이 사용되는 상수는 다음과 같습니다. 파일 디렉터리의 구분 기호인 상수입니다.

형식을 살펴보겠습니다.

平台分割符
windows
类unix/

Windows의 경로 형식은 d:xxxxxx입니다. 참고: Windows는 d:/xxx/xxx를 지원합니다.
Linux의 경로 형식은 /home/xxx/xxx입니다. 참고: Linux에서 homexxxxxx가 잘못된 경우
그러면 이스케이프 등을 활성화하면 이스케이프 문자를 함께 사용하면 d:xxxxxx가 동일해집니다. 판단할 때 2개가 있는데 하나로 변환한 후 /를 바꿔서 경로를 분할하면 Linux나 Windows에서 경로가 통일된 상태를 유지할 수 있습니다.

상수를 사용합니다:
DIRECTORY_SEPARATOR

현재 파일의 경로를 정의하는 간단한 예를 작성해 보겠습니다.

FILE은 PHP의 미리 정의된 상수이므로 변경할 방법이 없습니다. 필요한 경우 FILE도 운영 체제에 맞게 조정할 수 있습니다.
그러면 FILE을 사용하지 마세요. 사용자 정의 상수를 사용하고 다음과 같이 FILE을 처리할 수 있습니다.

<?php
$_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__);
define('__CUR_FILE__', $_current_file);

echo __CUR_FILE__;

?>

파일 포인터 작업 기능

rewind(리소스 핸들)

기능: 포인터가 처음으로 돌아갑니다

fseek(리소스 핸들) , int offset [, int from_where])
함수: 파일 포인터를 지정된 문자만큼 뒤로 이동합니다

이전 읽기에서 fread가 지정된 길이의 데이터를 읽는다는 것을 알았습니다. 지정된 길이의 내용을 읽습니다. 다음에 읽을 때에는 원래 위치부터 다시 읽습니다.

document_2015-09-08_55eecf3c2a7e0.png

위 그림과 같이 상상해 볼 수 있습니다.

1. 파일을 처음 열면 빨간색 아이콘이 읽혀집니다

2. 파일의 가색상을 A부터 C까지 읽어옵니다

3. 다음에 파일을 열면 C의 녹색 화살표부터 읽기 시작할 수 있습니다.

demo.txt 파일에 파일 배치를 작성합니다:

abcdeefghijklk
opqrst
uvwxyz
12345678

한 번 실험을 시작해 보겠습니다.

<?php
$fp = fopen('demo2.txt', 'r+');
//读取10个字符
echo fread($fp,10);

//指针设置回到开始处
rewind($fp);
//再读取10次看看输出的是什么
echo '<br>';
echo fread($fp,10);
echo '<br>';
//文件指针向后移动10个字符
echo fseek($fp,10);
echo '<br>';
//再看看文件中输出的是什么
echo fread($fp,10);
echo '<br>';
fclose($fp);
?>

위의 예에서 fseek는 지정된 길이만큼 바이트를 이동하는 것을 볼 수 있습니다. 그리고 되감기는 매번 파일의 시작 부분으로 돌아갑니다.

끝까지 나아가는 방법은? 바이트 수를 셀 수 있습니다. fseek 중에 바로 뒤로 이동합니다.

파일 크기 통계 바이트에 대해 이야기해 보겠습니다.

filesize는 파일 크기를 감지합니다

<?php


$filename = 'demo.txt';
echo $filename . '文件大小为: ' . filesize($filename) . ' bytes';

?>

파일 운영을 위한 기타 기능

사실 다른 기능도 있습니다 파일 운영, 파일 읽기 기능

函数名功能
file把整个文件读入一个数组中
fgets从文件指针中读取一行,读到最后返回false
fgetc从文件指针中读取一个字符,读到最后返回false
ftruncate将文件截断到给定的长度

위의 모든 기능을 사용하기 위해 예제를 사용합니다.

demo.txt 파일에 파일 배치를 작성합니다:

abcdeefghijklk
opqrst
uvwxyz
12345678

<?php

//以增加的r模式打开
$fp = fopen('demo.txt','r+');

//你分发现每次只读一个字符
echo  fgetc($fp);

//我要全部读取可以,读取一次将结果赋值一次给$string
while($string = fgetc($fp)){

   echo $string;

}
?>

fgets는 한 번에 한 줄씩 엽니다:

<?php

//以增加的r模式打开
$fp = fopen('demo.txt','r+');

//你分发现每次只读一个字符
echo  fgets($fp);
echo  fgets($fp);
echo  fgets($fp);
echo  fgets($fp);

?>

위 코드를 사용하면 읽을 때마다 한 번에 한 줄씩 열리는 것을 알 수 있습니다. 최종 읽기 반환이 거짓입니다.

다음으로 파일 가로채기 기능을 살펴보겠습니다.

<?php

//打开我们上面的demo.txt文件
$file = fopen("demo.txt", "a+");

//你可以数数20个字有多长,看看是不是达到效果了
echo ftruncate($file,20);
fclose($file);
?>

위의 예에서는 가로채기만 하면 콘텐츠가 표시될 수 있음을 발견했습니다.

파일의 시간 함수

函数功能说明
filectime文件创建时间
filemtime文件修改时间
fileatime文件上次访问时间
<?php

$filename = 'demo.txt';

if (file_exists($filename)) {
   echo '$filename文件的上次访问时间是:'  . date("Y-m-d H:i:s", fileatime($filename));
   echo '$filename文件的创建时间是: ' . date("Y-m-d H:i:s", filectime($filename));
    echo '$filename文件的修改时间是: ' . date("Y-m-d H:i:s", filemtime($filename));}
?>


지속적인 학습
||
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo '$filename文件的上次访问时间是:' . date("Y-m-d H:i:s", fileatime($filename)); echo '$filename文件的创建时间是: ' . date("Y-m-d H:i:s", filectime($filename)); echo '$filename文件的修改时间是: ' . date("Y-m-d H:i:s", filemtime($filename)); } ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~