Heim >Backend-Entwicklung >PHP-Tutorial >Gemeinsame Nutzung von Beispielen für den grundlegenden Betrieb einer PHP-Datei

Gemeinsame Nutzung von Beispielen für den grundlegenden Betrieb einer PHP-Datei

小云云
小云云Original
2018-03-20 13:27:151119Durchsuche


Dieser Artikel teilt Ihnen hauptsächlich grundlegende Betriebsbeispiele von PHP-Dateien mit. Ich hoffe, er kann Ihnen zunächst die grundlegenden Vorgänge zum Lesen und Schreiben von PHP-Dateien vorstellen .

Grundlegende Operationen des Lesens und Schreibens

  • Dateifunktion schreiben: file_put_contents()

    • FILE_USE_INCLUDE_PATH: überprüft den integrierten Pfad auf eine Kopie des Dateinamens

    • LOCK_EX: sperrt die Datei

    • FILE_APPEND: wird an das Ende der Datei verschoben. Andernfalls wird der Inhalt der Datei gelöscht

    • Syntax:

      int file_put_contents(file,data,mode,context)

      参数 描述
      file 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
      data 可选。规定要写入文件的数据。可以是字符串、一维数组或数据流。
      mode 可选。如何打开/写入文件。可能值:FILE_USE_INCLUDE_PATH 、 FILE_APPEND 、 LOCK_EX
      context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。
    • Rückgabewert : Die Funktion gibt die Anzahl der in die Datei geschriebenen Datenbytes zurück.

    • Modusparameterbeschreibung

    • hat die gleiche Funktion wie der aufeinanderfolgende Aufruf von fopen(), fwrite() und fclose().

  • Dateifunktion lesen: file_get_contents()

    • Syntax:

      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 新加的。
    • Rückgabewert: der gelesene String.

Andere häufig verwendete Dateifunktionen

  • Unlink() Datei löschen

  • Umbenennen ( ) Datei verschieben (umbenennen)

  • Filesize() Dateigröße

  • File_exists() Ob die Datei existiert

  • Filemtime() Die letzte Änderungszeit der Datei!

Lese- und Schreibvorgänge für Dateihandles

Die meisten Lese- und Schreibvorgänge für Dateien werden mit den folgenden Funktionen durchgeführt: File_put_contents, file_get_contents.
In einigen wenigen Fällen und in besonderen Fällen sind die beiden oben genannten Funktionen nicht einfach zu verwenden.
Normalerweise ist die Datei zu groß! Es kann nur Teil für Teil betrieben werden!
Die Grundeinheiten sind Bytes:

  • Die Funktion fopen() öffnet eine Datei oder URL.

    Wenn das Öffnen fehlschlägt, gibt diese Funktion FALSE zurück.
    Dateihandle öffnen, Datenpfad zwischen PHP-Programm und Datei!
    Erfordert zwei Parameter: Dateiadresse und Öffnungsmodus!

    Öffnungsmodus: Geben Sie an, welche Vorgänge nach dem Öffnen der Datei ausgeführt werden müssen! Folgende Modi können ausgewählt werden:

    • r: lesen, Lesemodus.

    • w: Schreiben, Schreibvorgang, klares Schreiben.

    • a: Anhängen, Schreibvorgang, Schreiben anhängen.

    • x: Neues Schreiben, Sie können nur neue Dateien für den Betrieb erstellen! Es handelt sich um eine Schreiboperation, ähnlich dem erweiterten Modus w

    • +: Erweiterte Operationen können Lese- und Schreibvorgänge abschließen.

      a033f09b1a547cc02045060a89d4ed93
  • Funktionen zum Lesen von Dateihandles fread(),fgetc(),fgets(),feof();

    • One byte data = fgetc(handle); //verstümmelte Zeichen bei Multibyte-Zeichen
      Immer wenn ein Byte gelesen wird, bewegen Sie den Dateizeiger um ein Byte nach vorne! Bei Handle-Operationen kommt es auf den Dateizeiger an!

    • String = fgets(handle, length)
      Wenn beim Lesen zuerst ein Newline-Zeichen gelesen wird, wird es ebenfalls beendet. Auch Zeilenlesefunktion genannt! Typische Logik: Jede Zeile zeichnet eine Reihe von Informationen auf. Diese Funktion wird am häufigsten verwendet!

    • feof() ermittelt, ob das Ende der Datei erreicht ist
      Beispiel für das Auslesen aller Dateiinformationen:

      <?php
          $handle = fopen(&#39;./langref.txt&#39;,&#39;r&#39;);
          while (! feof($handle)) {
              $line = fgets($handle,1024);
              echo $line . "</br>";
          }
      ?>
    • String = fread( handle, length)
      Inhalt basierend auf der Länge lesen, die sich von fgets unterscheidet und nicht durch Zeilenumbrüche begrenzt ist
      Die einzige Einschränkung ist: Die maximale Länge darf 8192 nicht überschreiten!

  • Datei-Handle-Schreibfunktion fwrite($handle, content)

  • Handle fclose($handle) schließen

  • Zeigerbetriebsfunktion

    • fseek(Griff, Position), Positionierungseinstellungszeiger, die Position beginnt bei 0 und erhöht sich!

    • ftell(handle), erhalte die Zeigerposition!

Gleichzeitige Dateioperation (Dateisperre)

Standardmäßig befindet sich die Dateioperationsfunktion von PHP nicht in einem blockierenden Zustand. Freier Betriebszustand. Daher kann es leicht zu Fehlern kommen, wenn Dateien gleichzeitig ausgeführt werden. Wenn ein Skriptvorgang andere Skriptvorgänge blockieren muss, müssen Dateisperren verwendet werden.

Sperrvorgang:
Fügen Sie zuerst die Sperre hinzu, prüfen Sie, ob die Sperre erfolgreich hinzugefügt wurde, und verwenden Sie sie erneut, wenn sie erfolgreich ist!

Sperrtyp:

  • Lesesperre: S-Lock (Share-Lock) Shared Lock, die erwartete zusätzliche Sperre vor dem Lesevorgang. Dadurch sind gleichzeitige Lesevorgänge zulässig und zusätzliche Schreibvorgänge werden blockiert.

  • Schreibsperre: x-lock (exclusive-lock) exklusive Sperre, exklusive Sperre, versuchen Sie, den Sperrtyp vor dem Schreibvorgang hinzuzufügen. Dies hat zur Folge, dass andere Skripte weder lesen noch schreiben können.

  • Absichtssperre: Alle Skripte, die Ressourcen betreiben, folgen einer Konvention zur Verwendung von Dateisperren (Konvention).

flock($handle, lock type);
Typ:

  • LOCK_SH Lesesperre

  • LOCK_EX Schreibsperre

  • LOCK_UN Entsperren

    <?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);//解锁
    ?>

    Wenn Kollegen ausführen, muss das obige Skript 2 (im blockierten Zustand) auf Skript 1 warten vollständige Ausführung. Betonen Sie, dass Sie beurteilen müssen, ob die Sperre erfolgreich hinzugefügt wurde

    Sie können LOCK_NB verwenden, um nicht zu blockieren, wenn die Sperre fehlschlägt:

    $lock_result = flock($handle, LOCK_EX | LOCK_NB);

Entsperren:

  • Flock($handle, LOCK_UN) zum Erzwingen des Entsperrens,

  • Fclose() zum automatischen Entsperren freischalten!

Verwandte Empfehlungen:

Beispielfreigabe für PHP-Dateivorgänge

Grundlegende Einführung in das Hochladen von PHP-Dateien

Teilen Sie ein einfaches Beispiel für das Hochladen einer PHP-Datei

Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung von Beispielen für den grundlegenden Betrieb einer PHP-Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn