PHP 파일 작업

不言
풀어 주다: 2023-03-24 11:42:02
원래의
4303명이 탐색했습니다.

이 글의 내용은 PHP 파일의 작동에 관한 것입니다. 이제 여러분과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

아주 기본적인 내용이지만, 부끄럽습니다. 아직 해보지 못했습니다. 그래서 이번 기회에 파일 작성 단계를 검토해 보았습니다

    이 파일을 엽니다. 파일이 없으면 작성하십시오.
  1. 동시성을 방지하기 위해 파일 잠금 만들기
  2. 이 데이터를 이 파일에 쓰기
  3. 잠금을 해제하고 파일 핸들을 닫으세요
  4. 파일을 읽는 단계

    이 파일을 열고, 열 수 없으면 종료하세요
  1. 파일에서 데이터 읽기
  2. 이 파일 닫기
  3. 파일 열기 작업

fopen($filename,$mode,$include_path,$context)

열기에 실패하면 false를 반환하고, 열기에 성공하면 리소스 개체를 반환합니다. fopen($filename,$mode,$include_path,$context)

打开失败返回false 打开成功则返回资源对象。

属性名称 作用
$filename 文件的路径(文件路径的间隔符用‘/’来表示,用’’可能会导致linux不识别)
$mode 文件访问的形式(写
$include_path (可选)从指定目录开始寻找文件所在位置
$context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

注意:
- 当文件的前缀是ftp://即文件服务器时  该函数将会建立一个连接到指定服务器的被动模式。并返回一个指向文件开始位置的指针
- 当文件前缀是http://时,会建立一个到指定服务器的http连接,返回一个纸箱http响应的指针
- 在Linux时执行文件操作要注意服务器的权限配置。

操作符 模式名称 意义
r 读模式 打开文件从头开始
r+ 读写模式 打开文件,从文件头开始读写
w 只写模式 打开文件,从文件头开始读写。如文件存在,清空文件内容,如不存在则穿件文件
w+ 读写模式 同上
x 谨慎写 如果文件存在则返回false
x+ 谨慎写 以读写方式打开文件,如果文件存在则返回false
a 追加 在文件末尾进行写操作
a+ 追加 在文件末尾进行读写操作

写文件操作

A. 需要调用 fopen()函数

1.`fwrite()`

描述 `int fwrite ( resource $handle , string $string [, int $length ] )`
$string   写入的字符  
$length   限制写入的长度
로그인 후 복사
로그인 후 복사
로그인 후 복사

B . 不需要调用fopen()函数

1. file_put_contents()
描述 file_put_contents(file,data,mode,context)
相当于一句话执行
fopen(),fwrite(),fclose()
로그인 후 복사
로그인 후 복사
로그인 후 복사

关闭文件

fclose($fp)

如果成功返回true,反之false
로그인 후 복사
로그인 후 복사
로그인 후 복사

读操作

$fp = fopen('./test.php','a')//以只读方式打开
flock($fp,LOCK_SH);//读操作锁定
while(!feof($fp))
{
    $order = fgets($fp);
    echo $order
}
fclose($fp)//关闭文件
# feof($fp) //检测文件是否读取到文件结束标志
//文件读写的几种操作
/*读取一行内的文字*/
# fgets($fp)  //获取文件一行字符
# (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&#39;<a>&#39;)//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签
# fgetcsv($fp,0,"/t") 以"/t"为分隔符,分割我数组
/*读取整个文件*/
# (不需要fopen()操作) readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )  //返回文件字符长度,!!!并且直接把内容输出到浏览器上
# fpassthru( resource $handle )  //返回boolean值
# file ( string $filename [, int $flags = 0 [, resource $context ]] )//把整个文件读入一个数组中,对每一行作为一个元素保存
/*读取一个字符*/
# fgetc()
/*读取任意长度字符*/
# fread($fp,$legth)
로그인 후 복사
로그인 후 복사
로그인 후 복사

其他文件函数

file_exists("路径");   //文件是否存在filesize("路径"); //文件大小unlink;     //删除文件
로그인 후 복사

文件锁

函数:`fclock($fp,’操作值’);//开启锁

操作值意义
LOCK_SH读操作锁定,可以共享,其他人可以读该文件
LOCK_EX写操作锁定,互斥锁
LOCK_UN释放已有的锁
LOCK_NB防止在请求枷锁时发生柱塞

虽说这是很基础的东西,惭愧的是我却对此并不是很了解。所以借此温故了一下

文件进行写操作的步骤

  1. 打开这个文件。如果文件不存在,那么创建它。

  2. 创建文件锁,防止并发

  3. 将这些数据写入这个文件

  4. 释放锁,并且关闭文件句柄

文件进行读操作的步骤

  1. 打开这个文件,如果不能打开就退出

  2. 从文件中读取数据

  3. 关闭这个文件

打开文件操作

fopen($filename,$mode,$include_path,$context)

속성 이름Function$filename파일 경로(파일 경로 구분 기호는 '/'로 표시되며, ''를 사용하면 Linux에서 인식하지 못할 수 있음) $mode 파일 접근 형태(write$include_path(선택)는 파일 위치$context를 찾기 위해 지정된 디렉터리부터 시작합니다. 의 환경을 지정합니다. 파일 핸들입니다. Context is OK 스트림의 동작을 수정하는 옵션 집합입니다. 참고:
- 파일 접두사가 ​​ftp://인 경우 이는 파일 서버입니다. 함수는 지정된 서버에 대한 수동 모드 연결을 설정하고 파일 시작 부분에 대한 포인터를 반환합니다.
- 파일 접두사가 http://인 경우 지정된 서버에 대한 http 연결이 설정되고 판지 http 응답에 대한 포인터가 반환됩니다.
- Linux에서 파일 작업을 수행합니다.
🎜🎜🎜Operator🎜🎜모드 이름🎜🎜의미🎜🎜🎜🎜🎜🎜r🎜🎜 읽기 모드🎜🎜파일을 처음부터 열기🎜🎜🎜🎜r+🎜 🎜읽기 및 쓰기 모드🎜🎜 파일을 열고 파일 헤더에서 읽고 쓰기 시작🎜🎜🎜🎜w🎜🎜쓰기 전용 모드🎜🎜파일 열기 파일 헤더에서 읽기 및 쓰기를 시작하세요. 파일 내용이 없으면 파일을 삭제하세요🎜🎜🎜🎜 w+🎜🎜읽기 및 쓰기 모드🎜🎜위와 동일🎜🎜🎜🎜x 🎜🎜주의해서 쓰기🎜🎜파일이 있으면 false를 반환🎜🎜🎜🎜x+🎜🎜주의해서 쓰기🎜🎜파일을 읽기-쓰기 모드로 열고 파일이 있으면 false를 반환 🎜🎜🎜🎜a🎜🎜Append🎜🎜 파일 끝에 쓰기🎜🎜🎜🎜a+🎜🎜Append🎜🎜파일 끝에 읽고 쓰기🎜🎜🎜🎜🎜파일 쓰기 작업🎜🎜A > fopen() function🎜
1.`fwrite()`

描述 `int fwrite ( resource $handle , string $string [, int $length ] )`
$string   写入的字符  
$length   限制写入的长度
로그인 후 복사
로그인 후 복사
로그인 후 복사
🎜 B. fopen() 함수를 호출할 필요가 없습니다🎜
1. file_put_contents()
描述 file_put_contents(file,data,mode,context)
相当于一句话执行
fopen(),fwrite(),fclose()
로그인 후 복사
로그인 후 복사
로그인 후 복사
🎜파일 닫기🎜
fclose($fp)

如果成功返回true,反之false
로그인 후 복사
로그인 후 복사
로그인 후 복사
🎜읽기 작업🎜
$fp = fopen(&#39;./test.php&#39;,&#39;a&#39;)//以只读方式打开
flock($fp,LOCK_SH);//读操作锁定
while(!feof($fp))
{
    $order = fgets($fp);
    echo $order
}
fclose($fp)//关闭文件
# feof($fp) //检测文件是否读取到文件结束标志
//文件读写的几种操作
/*读取一行内的文字*/
# fgets($fp)  //获取文件一行字符
# (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&#39;<a>&#39;)//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签
# fgetcsv($fp,0,"/t") 以"/t"为分隔符,分割我数组
/*读取整个文件*/
# (不需要fopen()操作) readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )  //返回文件字符长度,!!!并且直接把内容输出到浏览器上
# fpassthru( resource $handle )  //返回boolean值
# file ( string $filename [, int $flags = 0 [, resource $context ]] )//把整个文件读入一个数组中,对每一行作为一个元素保存
/*读取一个字符*/
# fgetc()
/*读取任意长度字符*/
# fread($fp,$legth)
로그인 후 복사
로그인 후 복사
로그인 후 복사
🎜기타 파일 기능🎜
file_exists("路径");   //文件是否存在filesize("路径"); //文件大小unlink;     //删除文件
로그인 후 복사
로그인 후 복사
🎜파일 잠금🎜🎜 함수: `fclock($fp,'작업) value');//잠금 열기🎜🎜🎜🎜🎜작업 값🎜🎜meaning🎜🎜🎜🎜🎜🎜LOCK_SH🎜🎜읽기 작업 잠금, 공유 가능, 다른 사람이 파일 읽기 가능 🎜🎜🎜🎜LOCK_EX🎜🎜쓰기 잠금 , mutex 🎜🎜🎜🎜LOCK_UN🎜🎜기존 잠금 해제 🎜🎜🎜🎜LOCK_NB🎜🎜샤클 요청시 플런저 방지🎜🎜🎜 🎜🎜아주 아쉽지만 기본적인 사항을 잘 몰라서 리뷰하겠습니다. 파일 쓰기 단계. 파일이 존재하지 않으면 파일을 만드세요. 🎜동시성을 방지하기 위해 파일 잠금을 생성하세요🎜🎜🎜🎜이 데이터를 이 파일에 쓰세요🎜🎜🎜🎜잠금을 해제하고 파일 핸들을 닫으세요🎜🎜🎜 🎜파일을 읽는 단계🎜🎜🎜🎜열 수 없는 경우 이 파일을 엽니다. 그냥 종료하세요🎜🎜🎜🎜파일에서 데이터를 읽으세요🎜🎜🎜🎜이 파일을 닫습니다🎜🎜🎜🎜파일 열기 작업🎜🎜fopen ($filename,$mode,$include_path,$context)🎜 🎜열기에 실패하면 false를 반환하고, 열기에 성공하면 리소스 개체를 반환합니다. 🎜🎜🎜🎜🎜속성 이름🎜🎜Function🎜🎜🎜🎜🎜🎜$filename🎜🎜파일 경로(파일 경로 구분 기호는 '/'로 표시되며, ''를 사용하면 Linux에서 인식하지 못할 수 있음) 🎜🎜🎜🎜 $mode🎜🎜 파일 접근 형태(write🎜🎜🎜🎜$include_path🎜🎜(선택)는 파일 위치🎜🎜🎜🎜$context🎜🎜를 찾기 위해 지정된 디렉터리부터 시작합니다. 의 환경을 지정합니다. 파일 핸들. 컨텍스트는 정상입니다. 스트림의 동작을 수정하는 옵션 세트 🎜🎜🎜🎜.

注意:
- 当文件的前缀是ftp://即文件服务器时 该函数将会建立一个连接到指定服务器的被动模式。并返回一个指向文件开始位置的指针
- 当文件前缀是http://时,会建立一个到指定服务器的http连接,返回一个纸箱http响应的指针
- 在Linux时执行文件操作要注意服务器的权限配置。

操作符模式名称意义
r读模式打开文件从头开始
r+读写模式打开文件,从文件头开始读写
w只写模式打开文件,从文件头开始读写。如文件存在,清空文件内容,如不存在则穿件文件
w+读写模式同上
x谨慎写如果文件存在则返回false
x+谨慎写以读写方式打开文件,如果文件存在则返回false
a追加在文件末尾进行写操作
a+追加在文件末尾进行读写操作

写文件操作

A. 需要调用 fopen()函数

1.`fwrite()`

描述 `int fwrite ( resource $handle , string $string [, int $length ] )`
$string   写入的字符  
$length   限制写入的长度
로그인 후 복사
로그인 후 복사
로그인 후 복사

B . 不需要调用fopen()函数

1. file_put_contents()
描述 file_put_contents(file,data,mode,context)
相当于一句话执行
fopen(),fwrite(),fclose()
로그인 후 복사
로그인 후 복사
로그인 후 복사

关闭文件

fclose($fp)

如果成功返回true,反之false
로그인 후 복사
로그인 후 복사
로그인 후 복사

读操作

$fp = fopen(&#39;./test.php&#39;,&#39;a&#39;)//以只读方式打开
flock($fp,LOCK_SH);//读操作锁定
while(!feof($fp))
{
    $order = fgets($fp);
    echo $order
}
fclose($fp)//关闭文件
# feof($fp) //检测文件是否读取到文件结束标志
//文件读写的几种操作
/*读取一行内的文字*/
# fgets($fp)  //获取文件一行字符
# (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&#39;<a>&#39;)//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签
# fgetcsv($fp,0,"/t") 以"/t"为分隔符,分割我数组
/*读取整个文件*/
# (不需要fopen()操作) readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )  //返回文件字符长度,!!!并且直接把内容输出到浏览器上
# fpassthru( resource $handle )  //返回boolean值
# file ( string $filename [, int $flags = 0 [, resource $context ]] )//把整个文件读入一个数组中,对每一行作为一个元素保存
/*读取一个字符*/
# fgetc()
/*读取任意长度字符*/
# fread($fp,$legth)
로그인 후 복사
로그인 후 복사
로그인 후 복사

其他文件函数

file_exists("路径");   //文件是否存在filesize("路径"); //文件大小unlink;     //删除文件
로그인 후 복사
로그인 후 복사

文件锁

函数:`fclock($fp,’操作值’);//开启锁

操作值 意义
LOCK_SH 读操作锁定,可以共享,其他人可以读该文件
LOCK_EX 写操作锁定,互斥锁
LOCK_UN 释放已有的锁
LOCK_NB 防止在请求枷锁时发生柱塞
相关推荐:

php的命名空间和自动加载


위 내용은 PHP 파일 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿