Η συνάρτηση file_put_contents

Η συνάρτηση file_put_contents γράφει δεδομένα σε ένα αρχείο. Η πρώτη παράμετρος είναι η διαδρομή προς το αρχείο, η δεύτερη - τα δεδομένα για εγγραφή. Η τρίτη προαιρετική παράμετρος ορίζει τη λειτουργία εγγραφής (βλ. πίνακα παρακάτω).

Η τέταρτη προαιρετική παράμετρος αναπαριστά έναν πόρο περιβάλλοντος ροής, που δημιουργείται από τη συνάρτηση stream_context_create. Επιτρέπει τη ρύθμιση παραμέτρων λειτουργίας με αρχείο ή δικτυακό πόρο.

Σύνταξη

phpfile_put_contents(
  string $filename,
  mixed $data,
  int $flags = 0,
  ?resource $context = null
): int|false

Τιμές της τρίτης παραμέτρου

Σημαία Περιγραφή
FILE_USE_INCLUDE_PATH Εάν οριστεί, η συνάρτηση θα αναζητήσει το αρχείο στους καταλόγους που ορίζονται στην παράμετρο include_path στις ρυθμίσεις PHP στο αρχείο php.ini.
FILE_APPEND Να προσαρτά τα δεδομένα στο τέλος του αρχείου αντί για αντικατάσταση
LOCK_EX Να αποκτά αποκλειστική κλείδωση του αρχείου για το χρόνο εγγραφής

Παράδειγμα

Ας γράψουμε μια συμβολοσειρά σε ένα αρχείο:

php<?php
  $res = file_put_contents('data.txt', 'abcde');
  echo $res;
?>

Το αποτέλεσμα εκτέλεσης του κώδικα επιστρέφει τον αριθμό των bytes που γράφτηκαν:

php5

Παράδειγμα

Ας προσθέσουμε δεδομένα στο τέλος του αρχείου:

php<?php
  $res = file_put_contents('data.txt', '12345', FILE_APPEND);
  echo $res;
?>

Παράδειγμα

Εγγραφή πίνακα σε αρχείο:

php<?php
  $data = ['a', 'b', 'c'];
  $res = file_put_contents('array.txt', implode(',', $data));
  echo $res;
?>

Παράδειγμα

Στην τρίτη παράμετρο μπορούν να οριστούν πολλαπλές σημαίες, απαριθμώντας τες μέσω του συμβόλου |. Για παράδειγμα, ας προσθέσουμε δεδομένα με κλείδωμα του αρχείου:

php<?php
  $res = file_put_contents(
    'log.txt',
    "text",
    FILE_APPEND | LOCK_EX
  );
  echo $res;
?>

Παράδειγμα

Χρήση περιβάλλοντος:

php<?php
  $opts = [
    'http' => [
      'method' => "POST",
      'header' => "Content-type: text/plain\r\n"
    ]
  ];
  
  $context = stream_context_create($opts);
  
  $res = file_put_contents(
    'http://example.com/api',
    'data=test',
    false,
    $context
  );
?>

Δείτε επίσης

  • τη συνάρτηση file_get_contents,
    που διαβάζει το περιεχόμενο ενός αρχείου
  • τη συνάρτηση fopen,
    που ανοίγει ένα αρχείο
  • τη συνάρτηση fwrite,
    που γράφει σε ένα αρχείο