Jadual Kandungan
本文主要和大家分享php文件基本操作实例,希望能帮助到大家,首先我们先和大家分享php读写基本操作。" >本文主要和大家分享php文件基本操作实例,希望能帮助到大家,首先我们先和大家分享php读写基本操作。
读写基本操作" >读写基本操作
其它常用文件函数
文件句柄读写操作
文件并发操作(文件锁)
Rumah pembangunan bahagian belakang tutorial php php文件基本操作实例分享

php文件基本操作实例分享

Mar 20, 2018 pm 01:27 PM
php kongsi Operasi asas


本文主要和大家分享php文件基本操作实例,希望能帮助到大家,首先我们先和大家分享php读写基本操作。

读写基本操作

  • 写文件函数:file_put_contents()

    • FILE_USE_INCLUDE_PATH : 将检查 filename 副本的内置路径

    • LOCK_EX : 将锁定文件

    • FILE_APPEND : 将移至文件末尾。否则,将会清除文件的内容

    • 语法:

      int file_put_contents(file,data,mode,context)

      参数 描述
      file 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
      data 可选。规定要写入文件的数据。可以是字符串、一维数组或数据流。
      mode 可选。如何打开/写入文件。可能值:FILE_USE_INCLUDE_PATH 、 FILE_APPEND 、 LOCK_EX
      context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。
    • 返回值:该函数将返回写入到文件内数据的字节数。

    • mode参数说明

    • 与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。

  • 读文件函数:file_get_contents()

    • 语法:

      string file_put_contents(path,include_path,context,start,max_length)

      参数 描述
      path 必需。规定要读取的文件。可以是外部url
      include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 “1”。
      context 可选。规定文件句柄的环境。
      start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
      max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。
    • 返回值:读取到的字符串。

其它常用文件函数

  • Unlink()  删除文件

  • Rename()  文件移动(重命名)

  • Filesize()  文件大小

  • File_exists()  文件是否存在

  • Filemtime()  文件的最后修改时间!

文件句柄读写操作

大多数的文件读写,使用函数:File_put_contents, file_get_contents完成。
 少数,特别情况,以上两个函数不好用。
 典型的就是,文件过大!只能一部分一部分的操作!
 基本单位都是字节:

  • fopen() 函数打开文件或者 URL。

    如果打开失败,本函数返回 FALSE。
    打开文件句柄,PHP程序与文件间数据通路!
    需要 文件地址  和  打开模式 两个参数!

    打开模式:指定打开该文件后,需要执行什么操作!如下的模式可以选择:

    • r:    read, 读模式。

    • w:    write, 写操作,清空写。

    • a:    append,写操作,追加写。

    • x:    新建写,只能新建文件进行操作!就是写操作,与w类似

    • +扩展模式:扩展的操作,都可以完成读写操作。

      <?php
          $handle = fopen(&#39;./data.txt&#39;,&#39;r&#39;);
          var_dump($handle); // resoure(3) of type (stream) 得到一个资源类型
      ?>
      Salin selepas log masuk
  • 文件句柄读函数fread(),fgetc(),fgets(),feof();

    • 一个字节数据 = fgetc(句柄); //多字节字符情况下乱码
      每当读取到一个字节,将文件指针向前移动一个字节!句柄操作中,依赖的就是 文件指针!

    • 字符串 = fgets(句柄, 长度)
      如果在读取时,先读到了换行符,也会终止。也叫读行函数!典型的逻辑,每行记录一组信息,该函数最常用!

    • feof()判断是否达到文件末尾
      读取文件全部信息例子:

      <?php
          $handle = fopen(&#39;./langref.txt&#39;,&#39;r&#39;);
          while (! feof($handle)) {
              $line = fgets($handle,1024);
              echo $line . "</br>";
          }
      ?>
      Salin selepas log masuk
    • 字符串 = fread(handle,长度)
      依据长度读取内容,与fgets区别,不受换行符的限制
      唯一一个限制为:最大的长度不能超过8192!

  • 文件句柄写函数fwrite($handle,内容)

  • 关闭句柄fclose($handle)

  • 指针操作函数

    • fseek(句柄, 位置),定位设置指针,位置从0开始,递增!

    • ftell(句柄),获取指针位置!

文件并发操作(文件锁)

默认的,PHP的文件操作函数,不是阻塞状态。自由操作状态。所以并发操作文件的时候容易导致出错,当需要,一个脚本操作而需要阻塞另外的脚本操作时,需要用到文件锁。

锁操作流程:
先加锁,检测锁是否加成功,如果成功再使用!

锁定类型:

  • 读锁: s-lock(share-lock)共享锁,读操作前,期望增加的锁定。导致,允许并发读,阻塞额外的写操作。

  • 写锁: x-lock(exclusive-lock)排他锁,独占锁,写操作前,尝试添加的锁定类型。导致,其他脚本不能读也不能写。

  • 意向锁:所有的操作资源的脚本都遵循一个约定来使用文件锁(约定)。

flock($handle,锁类型);
类型:

  • LOCK_SH 读锁

  • LOCK_EX 写锁

  • LOCK_UN 解锁

    <?php
        //*********脚本1,想要读取文件信息***********
        //尝试加读锁
        $lock_result= flock($handle, LOCK_SH);
        //判断锁定结果
        if(!$lock_result){
            die(&#39;锁定失败,不能操作文件&#39;);
        }
        //文件操作
        $str = fgets($handle, 1024);
        var_dump($str);
    
        sleep(5);
        echo &#39;<br>&#39;;
        $str = fgets($handle, 1024);
        var_dump($str);
        flock($handle, LOCK_UN);//解锁
    ?>
    
    <?php
        //*********脚本2,想要往文件里写入信息***********
        //尝试加写锁
        $lock_result= flock($handle, LOCK_EX);
        //判断锁定结果
        if(!$lock_result){
            die(&#39;锁定失败,不能操作文件&#39;);
        }
        //文件操作
        $result = fwrite($handle, &#39;123456&#39;);
        flock($handle, LOCK_UN);//解锁
    ?>
    Salin selepas log masuk

    同事执行的情况下,上述脚本2需要等待(被阻塞状态)脚本1执行完成才会执行,强调,一定要判断锁是否添加成功

    可以通过LOCK_NB来在锁定失败时,不阻塞:

    $lock_result = flock($handle, LOCK_EX | LOCK_NB);
    Salin selepas log masuk

解锁:

  • Flock($handle, LOCK_UN)来强制解锁,

  • Fclose()自动解锁!

相关推荐:

PHP文件操作实例分享

php文件上传基础入门

php文件上传简单实例分享

Atas ialah kandungan terperinci php文件基本操作实例分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

See all articles