flock.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Constants
- _spip_attend_invalidation_opcode_cache = true
- _TEST_FILE_EXISTS = \preg_match(',(online|free)[.]fr$,', $_ENV['HTTP_HOST'] ?? '')
- Permettre d'éviter des tests file_exists sur certains hébergeurs
Functions
- spip_fopen_lock() : resource|bool
- Ouvre un fichier et le vérrouille
- spip_fclose_unlock() : bool
- Dévérrouille et ferme un fichier
- spip_file_get_contents() : string
- Retourne le contenu d'un fichier, même si celui ci est compréssé avec une extension en `.gz`
- lire_fichier() : bool
- Lit un fichier et place son contenu dans le paramètre transmis.
- ecrire_fichier() : bool
- Écrit un fichier de manière un peu sûre
- ecrire_fichier_securise() : mixed
- Écrire un contenu dans un fichier encapsulé en PHP pour en empêcher l'accès en l'absence de fichier htaccess
- ecrire_fichier_calcule_si_modifie() : bool|null
- lire_fichier_securise() : bool
- Lire un fichier encapsulé en PHP
- raler_fichier() : never
- Affiche un message d’erreur bloquant, indiquant qu’il n’est pas possible de créer le fichier à cause des droits sur le répertoire parent au fichier.
- jeune_fichier() : bool
- Teste si un fichier est récent (moins de n secondes)
- supprimer_fichier() : bool
- Supprimer un fichier de manière sympa (flock)
- spip_unlink() : mixed
- Supprimer brutalement un fichier ou un dossier, s'il existe
- spip_clear_opcode_cache() : mixed
- Invalidates a PHP file from any active opcode caches.
- spip_attend_invalidation_opcode_cache() : mixed
- Attendre l'invalidation de l'opcache
- supprimer_repertoire() : bool
- Suppression complete d'un repertoire.
- sous_repertoire() : string
- Crée un sous répertoire
- preg_files() : array<string|int, mixed>
- Parcourt récursivement le repertoire `$dir`, et renvoie les fichiers dont le chemin vérifie le pattern (preg) donné en argument.
Constants
_spip_attend_invalidation_opcode_cache
public
mixed
_spip_attend_invalidation_opcode_cache
= true
_TEST_FILE_EXISTS
Permettre d'éviter des tests file_exists sur certains hébergeurs
public
mixed
_TEST_FILE_EXISTS
= \preg_match(',(online|free)[.]fr$,', $_ENV['HTTP_HOST'] ?? '')
Functions
spip_fopen_lock()
Ouvre un fichier et le vérrouille
spip_fopen_lock(string $fichier, string $mode, int $verrou) : resource|bool
Parameters
- $fichier : string
-
Chemin du fichier
- $mode : string
-
Mode d'ouverture du fichier (r,w,...)
- $verrou : int
-
Type de verrou (avec _SPIP_LOCK_MODE = 1)
Tags
Return values
resource|bool —Ressource sur le fichier ouvert, sinon false.
spip_fclose_unlock()
Dévérrouille et ferme un fichier
spip_fclose_unlock(resource $handle) : bool
Parameters
- $handle : resource
-
Chemin du fichier
Tags
Return values
bool —true si succès, false sinon.
spip_file_get_contents()
Retourne le contenu d'un fichier, même si celui ci est compréssé avec une extension en `.gz`
spip_file_get_contents(string $fichier) : string
Parameters
- $fichier : string
-
Chemin du fichier
Return values
string —Contenu du fichier
lire_fichier()
Lit un fichier et place son contenu dans le paramètre transmis.
lire_fichier(string $fichier, string &$contenu[, array<string|int, mixed> $options = [] ]) : bool
Décompresse automatiquement les fichiers .gz
Parameters
- $fichier : string
-
Chemin du fichier
- $contenu : string
-
Le contenu du fichier sera placé dans cette variable
- $options : array<string|int, mixed> = []
-
Options tel que :
- 'phpcheck' => 'oui' : vérifie qu'on a bien du php
Tags
Return values
bool —true si l'opération a réussie, false sinon.
ecrire_fichier()
Écrit un fichier de manière un peu sûre
ecrire_fichier(string $fichier, string $contenu[, bool $ignorer_echec = false ][, bool $truncate = true ]) : bool
Cette écriture s’exécute de façon sécurisée en posant un verrou sur le fichier avant sa modification. Les fichiers .gz sont compressés.
Parameters
- $fichier : string
-
Chemin du fichier
- $contenu : string
-
Contenu à écrire
- $ignorer_echec : bool = false
-
- true pour ne pas raler en cas d'erreur
- false affichera un message si on est webmestre
- $truncate : bool = true
-
Écriture avec troncation ?
Tags
Return values
bool —- true si l’écriture s’est déroulée sans problème.
ecrire_fichier_securise()
Écrire un contenu dans un fichier encapsulé en PHP pour en empêcher l'accès en l'absence de fichier htaccess
ecrire_fichier_securise(string $fichier, string $contenu[, bool $ecrire_quand_meme = false ][, bool $truncate = true ]) : mixed
Parameters
- $fichier : string
-
Chemin du fichier
- $contenu : string
-
Contenu à écrire
- $ecrire_quand_meme : bool = false
-
- true pour ne pas raler en cas d'erreur
- false affichera un message si on est webmestre
- $truncate : bool = true
-
Écriture avec troncation ?
Tags
ecrire_fichier_calcule_si_modifie()
ecrire_fichier_calcule_si_modifie(string $fichier, string $contenu[, bool $force = false ]) : bool|null
Parameters
- $fichier : string
- $contenu : string
- $force : bool = false
Return values
bool|null —false en cas d'erreur true en cas d'ecriture suite à modification null si fichier inchangé car pas de modif
lire_fichier_securise()
Lire un fichier encapsulé en PHP
lire_fichier_securise(string $fichier, string &$contenu[, array<string|int, mixed> $options = [] ]) : bool
Parameters
- $fichier : string
-
Chemin du fichier
- $contenu : string
-
Le contenu du fichier sera placé dans cette variable
- $options : array<string|int, mixed> = []
-
Options tel que :
- 'phpcheck' => 'oui' : vérifie qu'on a bien du php
Tags
Return values
bool —true si l'opération a réussie, false sinon.
raler_fichier()
Affiche un message d’erreur bloquant, indiquant qu’il n’est pas possible de créer le fichier à cause des droits sur le répertoire parent au fichier.
raler_fichier(string $fichier) : never
Arrête le script PHP par un exit;
Parameters
- $fichier : string
Tags
Return values
neverjeune_fichier()
Teste si un fichier est récent (moins de n secondes)
jeune_fichier(string $fichier, int $n) : bool
Parameters
- $fichier : string
-
Chemin du fichier
- $n : int
-
Âge testé, en secondes
Return values
bool —- true si récent, false sinon
supprimer_fichier()
Supprimer un fichier de manière sympa (flock)
supprimer_fichier(string $fichier[, bool $lock = true ]) : bool
Parameters
- $fichier : string
-
Chemin du fichier
- $lock : bool = true
-
true pour utiliser un verrou
Return values
bool —- true si le fichier n'existe pas ou s'il a bien été supprimé
- false si on n'arrive pas poser le verrou ou si la suppression échoue
spip_unlink()
Supprimer brutalement un fichier ou un dossier, s'il existe
spip_unlink(string $f) : mixed
Parameters
- $f : string
-
Chemin du fichier
Tags
spip_clear_opcode_cache()
Invalidates a PHP file from any active opcode caches.
spip_clear_opcode_cache(string $filepath) : mixed
If the opcode cache does not support the invalidation of individual files, the entire cache will be flushed. kudo : http://cgit.drupalcode.org/drupal/commit/?id=be97f50
Parameters
- $filepath : string
-
The absolute path of the PHP file to invalidate.
spip_attend_invalidation_opcode_cache()
Attendre l'invalidation de l'opcache
spip_attend_invalidation_opcode_cache([mixed $timestamp = null ]) : mixed
Si opcache est actif et en mode validate_timestamps
,
le timestamp du fichier ne sera vérifié qu'après une durée
en secondes fixée par revalidate_freq
.
Il faut donc attendre ce temps là pour être sûr qu'on va bien bénéficier de la recompilation du fichier par l'opcache.
Ne fait rien en dehors de ce cas
Parameters
- $timestamp : mixed = null
Tags
supprimer_repertoire()
Suppression complete d'un repertoire.
supprimer_repertoire(string $dir) : bool
Parameters
- $dir : string
-
Chemin du repertoire
Tags
Return values
bool —Suppression reussie.
sous_repertoire()
Crée un sous répertoire
sous_repertoire(string $base[, string $subdir = '' ][, bool $nobase = false ][, bool $tantpis = false ]) : string
Retourne $base/{$subdir}/
si le sous-repertoire peut être crée
Parameters
- $base : string
-
- Chemin du répertoire parent (avec $subdir)
- sinon chemin du répertoire à créer
- $subdir : string = ''
-
- Nom du sous répertoire à créer,
- non transmis,
$subdir
vaut alors ce qui suit le dernier/
dans$base
- $nobase : bool = false
-
true pour ne pas avoir le chemin du parent
$base/
dans le retour - $tantpis : bool = false
-
true pour ne pas raler en cas de non création du répertoire
Tags
Return values
string —Chemin du répertoire créé.
preg_files()
Parcourt récursivement le repertoire `$dir`, et renvoie les fichiers dont le chemin vérifie le pattern (preg) donné en argument.
preg_files(string $dir[, int|string $pattern = -1 ][, int $maxfiles = 10000 ][, array<string|int, mixed> $recurs = [] ]) : array<string|int, mixed>
En cas d'echec retourne un array()
vide
Parameters
- $dir : string
-
Répertoire à parcourir
- $pattern : int|string = -1
-
Expression régulière pour trouver des fichiers, tel que
[.]lock$
- $maxfiles : int = 10000
-
Nombre de fichiers maximums retournés
- $recurs : array<string|int, mixed> = []
-
false pour ne pas descendre dans les sous répertoires
Tags
Return values
array<string|int, mixed> —Chemins des fichiers trouvés.