Mise en cache d'un site

Ce script contient les fonctions pour la gestion du cache. Exemple détaillé d'une mise en cache fournie avec le code.

Si la date HTTP_IF_MODIFIED_SINCE est renseignée et que le cache n'a pas été modifié depuis cette date, on ne renvoie qu'un statut 304 (Not modified). Si les options le permettent le contenu de la page est compressé avant d'être envoyé.

La fonction get_cache_name permet de déterminer le nom du fichier cache en fonction de l'url. Les fichiers caches sont sauvegardés dans un répertoire /cache/ à la racine du site. L'url est encodé avec la fonction md5 pour constituer le nom du fichier suivi de l'extension .html.

La fonction delete_cache_file permet de supprimer le fichier cache en fonction de l'url.

La fonction start_buffer permet d'envoyer le fichier cache si il existe, si il date de moins de 24H et si le paramètre de la fonction est true. Elle doit être placée le plus haut possible dans le script (avant tout affichage de données). Il est possible de ne pas envoyer le fichier en cache en mettant false comme paramètre (par exemple pour remplacer le fichier cache).

La fonction end_buffer permet de sauvegarder le fichier cache si le paramètre de la fonction est true. Le contenu de la page est ensuite envoyée au navigateur. Elle doit être placée à la fin des scripts après la génération du contenu. Il est possible de ne pas sauvegarder le fichier cache en mettant false comme paramètre (par exemple quand la page a des paramètres POST)

La fonction gere_erreur peut être utilisée pour gérer les erreurs (par exemple MYSQL). Il faut l'appeler quand on est dans l'impossibilité de générer le contenu de la page. Elle envoie le fichier cache si il existe (même si il est périmé). Sinon une erreur 503 est renvoyée (Service temporairement indisponible) qui indique aux moteurs de recherche qu'il faut revenir 1H plus tard.


Information sur les mises à jour

Dernière mise à jour :

22 Sept 2019
fonctionnement du code vérifié

18 507  vues
Compatibilité du code
PHP 5, PHP 7 et PHP 8
  code classé dans   Fichiers-répertoires
  code source classé dans   Fichiers-répertoires
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
                    
<?php
/*------------------------------*/
/*
Titre : Mise en cache d'un site

Auteur : forty
Website auteur : http://www.toplien.fr/
Date édition : 27 Mai 2008
Date mise a jour : 22 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/
// répertoire contenant les fichiers cache
define ('REPERTOIRE_CACHE', rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/cache/');
// durée de vie du cache en seconde : ici 24 heures
define('DUREE_CACHE', 86400);

// détermine le nom du fichier cache en fonction de l'url
function get_cache_name($url) {
return REPERTOIRE_CACHE . md5($url) . '.html';
}

// supprime le fichier cache si il existe
function delete_cache_file($url) {
$fichierCache = get_cache_name($url);
if (@file_exists($fichierCache)) { //si la page existe dans le cache
@unlink($fichierCache);
}
}

//envoi le cache
function send_cache($fichierCache) {
$date_modif = @filemtime($fichierCache);
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
(strtotime(preg_replace('/;.*$/', '',
$_SERVER['HTTP_IF_MODIFIED_SINCE'])) >= $date_modif)) {
header('Status: 304 Not Modified', false, 304);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $date_modif) .
' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', $date_modif + DUREE_CACHE)
.
' GMT');
exit;
} else {
header('Status: 200 OK', false, 200);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $date_modif) .
' GMT');
}
if ((ini_get('zlib.output_compression') != true) &&
function_exists('ob_gzhandler')) {
ob_start('ob_gzhandler');
} else {
}
if (@readfile($fichierCache) === false) {
//si la page n'existe dans le cache
die('Rechargez la page');
}
if ((ini_get('zlib.output_compression') == true) ||
!function_exists('ob_gzhandler')) {
header('Content-Length: ' . ob_get_length());
}
}

// envoi le fichier cache si il existe, si il date de moins de 24H et si le
// paramètre $send_cache = true
// sinon commence la bufferisation du contenu (avec compression si possible)
function start_buffer($send_cache = true) {
$fichierCache = get_cache_name('http://' . $_SERVER['HTTP_HOST'] . $_SERVER[
'REQUEST_URI']);
if ($send_cache && @file_exists($fichierCache) && @filemtime($fichierCache)
>
time() - DUREE_CACHE) {
send_cache($fichierCache);
exit;
}
set_time_limit();
if ((ini_get('zlib.output_compression') != true) && function_exists(
'ob_gzha' .
'ndler')) {
ob_start('ob_gzhandler');
} else {
}
}

// sauvegarde le fichier cache si $saveCache = true
// puis termine la bufferisation et envoi le contenu au navigateur
function end_buffer($saveCache = true) {
if ($saveCache) {
$fichierCache = get_cache_name('http://' . $_SERVER['HTTP_HOST'] .
$_SERVER[
'REQUEST_URI']);
if ($fd = fopen($fichierCache, 'w')) {
// on ecrit le contenu du buffer dans le
// fichier cache
fclose($fd);
}
$date_modif = @filemtime($fichierCache);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $date_modif) .
' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', $date_modif + DUREE_CACHE)
.
' GMT');
} else {
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
}
if ((ini_get('zlib.output_compression') == true) || !function_exists(
'ob_gzh' .
'andler')) {
header('Content-Length: ' . ob_get_length());
}
}

// cette fonction est a appeler en cas d'erreur pour générer le contenu de
// la
// page (par exemple pour l'accès à  la base de données)
// si le fichier existe en cache on envoie ce fichier sinon on envoie une
// erreur
// 503 (reessayer plus tard).
function gere_erreur() {
$fichierCache = get_cache_name('http://' . $_SERVER['HTTP_HOST'] . $_SERVER[
'REQUEST_URI']);
if (@file_exists($fichierCache)) {
send_cache($fichierCache);
} else {
while (ob_get_level()) ob_end_clean(); // vide le buffer de sortie
header('Status: 503 Service Temporarily Unavailable', false, 503);
header('Retry-After: 3600'); // 1 heure
?>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>503 Service Temporarily Unavailable</title>
<meta name="robots" content="none">
</head>
<body>
<h1>Service Temporarily Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
<h1>Service Temporairement indisponible</h1>
<p>Le serveur est temporairement incapable de
répondre à  votre requête à  cause d'un arrêt du
serveur pour maintenance ou problème.</p>
</body>
</html>
<?php
}
exit;
}
?>
<?php
// ce qui suit n'est là  que pour servir d'exemple

if (isset($_GET['delete'])) {
delete_cache_file($_GET['url']);
header('Status: 301 Move permanently', false, 301);
header('Location: ' . $_GET['url']);
exit;
}

start_buffer();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test gestion cache</title>
</head>
<body>
<p>Ce script contient les fonctions pour la gestion du cache.
Si la date HTTP_IF_MODIFIED_SINCE est renseignée et que le cache n'a pas
été
modifié depuis
cette date, on ne renvoie qu'un statut 304 (Not modified).
Si les options le permettent le contenu de la page est compressé avant
d'être
envoyé.</p>
<p>La fonction <strong>get_cache_name</strong> permet de déterminer le nom du
fichier cache en fonction de l'url.
Les fichiers caches sont sauvegardés dans un répertoire /cache/ à  la
racine du
site (<?php echo REPERTOIRE_CACHE;?>).
L'url est encodé avec la fonction md5 pour constituer le nom du fichier suivi
de
l'extension .html.
Cette page sera sauvegardée par exemple avec le nom
<?php echo get_cache_name('http://' . $_SERVER['HTTP_HOST'] . $_SERVER[
'REQUEST_URI']); ?></p>
<p>La fonction <strong>delete_cache_file</strong> permet de supprimer le fichier
cache en fonction de l'url.</p>
<p>La fonction <strong>start_buffer</strong> permet d'envoyer le fichier cache
si il existe, si il date de moins de 24H
et si le paramètre de la fonction est true. Elle doit être placée le
plus haut
possible dans le script
appelé (avant tout affichage de données). Il est possible de ne pas
envoyer le
fichier en cache en
mettant false comme paramètre (par exemple pour remplacer le fichier
cache).</p>
<p>La fonction <strong>end_buffer</strong> permet de sauvegarder le fichier
cache si le paramètre de la fonction
est true. Le contenu de la page est ensuite envoyée au navigateur. Elle doit
être placée à  la fin des
scripts après la génération du contenu. Il est possible de ne pas
sauvegarder le
fichier cache
en mettant false comme paramètre (par exemple quand la page a des
paramètres
POST)</p>
<p>La fonction <strong>gere_erreur</strong> peut être appelée en cas
d'erreurs
(par exemple MYSQL).
Il faut l'appeler quand on est dans l'impossibilité de générer le
contenu de la
page.
Elle envoie le fichier cache si il existe (même s'il est périmé). Sinon
une
erreur 503 est renvoyée
(Service temporairement indisponible) qui indique aux moteurs de recherche qu'il
faut revenir
1H plus tard.</p>
<p><a href="cache.php">Rechargez cette page</a> pour voir la version en cache.
La date et l'heure ci dessous ne doivent pas changer.</p>
<p><a href="cache.php?delete&url=<?php echo urlencode('http://' . $_SERVER[
'HTTP_HOST'] . $_SERVER['REQUEST_URI']); ?>">Supprimer le cache</a> pour voir la
date
changer.</p>
<p><?php echo gmdate('D, d M Y H:i:s') . ' GMT'; ?></p>
<?php
// on créé le répertoire cache si il n'existe pas.
if (!@file_exists(REPERTOIRE_CACHE)) {
@mkdir(REPERTOIRE_CACHE);
}
?>
</body>
</html>
<?php
end_buffer();
?>
<?php
/*------------------------------*/
/*
Titre : Mise en cache d'un site

Auteur : forty
Website auteur : http://www.toplien.fr/
Date édition : 27 Mai 2008
Date mise a jour : 22 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/
// répertoire contenant les fichiers cache
define ('REPERTOIRE_CACHE', rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/cache/');
// durée de vie du cache en seconde : ici 24 heures
define('DUREE_CACHE', 86400);

// détermine le nom du fichier cache en fonction de l'url
function get_cache_name($url) {
return REPERTOIRE_CACHE . md5($url) . '.html';
}

// supprime le fichier cache si il existe
function delete_cache_file($url) {
$fichierCache = get_cache_name($url);
if (@file_exists($fichierCache)) { //si la page existe dans le cache
@unlink($fichierCache);
}
}

//envoi le cache
function send_cache($fichierCache) {
$date_modif = @filemtime($fichierCache);
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
(strtotime(preg_replace('/;.*$/', '',
$_SERVER['HTTP_IF_MODIFIED_SINCE'])) >= $date_modif)) {
header('Status: 304 Not Modified', false, 304);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $date_modif) .
' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', $date_modif + DUREE_CACHE)
.
' GMT');
exit;
} else {
header('Status: 200 OK', false, 200);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $date_modif) .
' GMT');
}
if ((ini_get('zlib.output_compression') != true) &&
function_exists('ob_gzhandler')) {
ob_start('ob_gzhandler');
} else {
}
if (@readfile($fichierCache) === false) {
//si la page n'existe dans le cache
die('Rechargez la page');
}
if ((ini_get('zlib.output_compression') == true) ||
!function_exists('ob_gzhandler')) {
header('Content-Length: ' . ob_get_length());
}
}

// envoi le fichier cache si il existe, si il date de moins de 24H et si le
// paramètre $send_cache = true
// sinon commence la bufferisation du contenu (avec compression si possible)
function start_buffer($send_cache = true) {
$fichierCache = get_cache_name('http://' . $_SERVER['HTTP_HOST'] . $_SERVER[
'REQUEST_URI']);
if ($send_cache && @file_exists($fichierCache) && @filemtime($fichierCache)
>
time() - DUREE_CACHE) {
send_cache($fichierCache);
exit;
}
set_time_limit();
if ((ini_get('zlib.output_compression') != true) && function_exists(
'ob_gzha' .
'ndler')) {
ob_start('ob_gzhandler');
} else {
}
}

// sauvegarde le fichier cache si $saveCache = true
// puis termine la bufferisation et envoi le contenu au navigateur
function end_buffer($saveCache = true) {
if ($saveCache) {
$fichierCache = get_cache_name('http://' . $_SERVER['HTTP_HOST'] .
$_SERVER[
'REQUEST_URI']);
if ($fd = fopen($fichierCache, 'w')) {
// on ecrit le contenu du buffer dans le
// fichier cache
fclose($fd);
}
$date_modif = @filemtime($fichierCache);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $date_modif) .
' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', $date_modif + DUREE_CACHE)
.
' GMT');
} else {
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
}
if ((ini_get('zlib.output_compression') == true) || !function_exists(
'ob_gzh' .
'andler')) {
header('Content-Length: ' . ob_get_length());
}
}

// cette fonction est a appeler en cas d'erreur pour générer le contenu de
// la
// page (par exemple pour l'accès à  la base de données)
// si le fichier existe en cache on envoie ce fichier sinon on envoie une
// erreur
// 503 (reessayer plus tard).
function gere_erreur() {
$fichierCache = get_cache_name('http://' . $_SERVER['HTTP_HOST'] . $_SERVER[
'REQUEST_URI']);
if (@file_exists($fichierCache)) {
send_cache($fichierCache);
} else {
while (ob_get_level()) ob_end_clean(); // vide le buffer de sortie
header('Status: 503 Service Temporarily Unavailable', false, 503);
header('Retry-After: 3600'); // 1 heure
?>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>503 Service Temporarily Unavailable</title>
<meta name="robots" content="none">
</head>
<body>
<h1>Service Temporarily Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
<h1>Service Temporairement indisponible</h1>
<p>Le serveur est temporairement incapable de
répondre à  votre requête à  cause d'un arrêt du
serveur pour maintenance ou problème.</p>
</body>
</html>
<?php
}
exit;
}
?>
<?php
// ce qui suit n'est là  que pour servir d'exemple

if (isset($_GET['delete'])) {
delete_cache_file($_GET['url']);
header('Status: 301 Move permanently', false, 301);
header('Location: ' . $_GET['url']);
exit;
}

start_buffer();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test gestion cache</title>
</head>
<body>
<p>Ce script contient les fonctions pour la gestion du cache.
Si la date HTTP_IF_MODIFIED_SINCE est renseignée et que le cache n'a pas
été
modifié depuis
cette date, on ne renvoie qu'un statut 304 (Not modified).
Si les options le permettent le contenu de la page est compressé avant
d'être
envoyé.</p>
<p>La fonction <strong>get_cache_name</strong> permet de déterminer le nom du
fichier cache en fonction de l'url.
Les fichiers caches sont sauvegardés dans un répertoire /cache/ à  la
racine du
site (<?php echo REPERTOIRE_CACHE;?>).
L'url est encodé avec la fonction md5 pour constituer le nom du fichier suivi
de
l'extension .html.
Cette page sera sauvegardée par exemple avec le nom
<?php echo get_cache_name('http://' . $_SERVER['HTTP_HOST'] . $_SERVER[
'REQUEST_URI']); ?></p>
<p>La fonction <strong>delete_cache_file</strong> permet de supprimer le fichier
cache en fonction de l'url.</p>
<p>La fonction <strong>start_buffer</strong> permet d'envoyer le fichier cache
si il existe, si il date de moins de 24H
et si le paramètre de la fonction est true. Elle doit être placée le
plus haut
possible dans le script
appelé (avant tout affichage de données). Il est possible de ne pas
envoyer le
fichier en cache en
mettant false comme paramètre (par exemple pour remplacer le fichier
cache).</p>
<p>La fonction <strong>end_buffer</strong> permet de sauvegarder le fichier
cache si le paramètre de la fonction
est true. Le contenu de la page est ensuite envoyée au navigateur. Elle doit
être placée à  la fin des
scripts après la génération du contenu. Il est possible de ne pas
sauvegarder le
fichier cache
en mettant false comme paramètre (par exemple quand la page a des
paramètres
POST)</p>
<p>La fonction <strong>gere_erreur</strong> peut être appelée en cas
d'erreurs
(par exemple MYSQL).
Il faut l'appeler quand on est dans l'impossibilité de générer le
contenu de la
page.
Elle envoie le fichier cache si il existe (même s'il est périmé). Sinon
une
erreur 503 est renvoyée
(Service temporairement indisponible) qui indique aux moteurs de recherche qu'il
faut revenir
1H plus tard.</p>
<p><a href="cache.php">Rechargez cette page</a> pour voir la version en cache.
La date et l'heure ci dessous ne doivent pas changer.</p>
<p><a href="cache.php?delete&url=<?php echo urlencode('http://' . $_SERVER[
'HTTP_HOST'] . $_SERVER['REQUEST_URI']); ?>">Supprimer le cache</a> pour voir la
date
changer.</p>
<p><?php echo gmdate('D, d M Y H:i:s') . ' GMT'; ?></p>
<?php
// on créé le répertoire cache si il n'existe pas.
if (!@file_exists(REPERTOIRE_CACHE)) {
@mkdir(REPERTOIRE_CACHE);
}
?>
</body>
</html>
<?php
end_buffer();
?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    define
Définit une constante
PHP 4, 5, 7 et 8
    die
Alias de la fonction exit
PHP 4, 5, 7 et 8
    echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
    empty
Détermine si une variable est vide
PHP 4, 5, 7 et 8
    exit
Terminer le script en cours avec un code d'état ou un message
PHP 4, 5, 7 et 8
    fclose
Ferme un fichier
PHP 4, 5, 7 et 8
    filemtime
Lit la date de dernière modification du fichier
PHP 4, 5, 7 et 8
    file_exists
Vérifie si un fichier ou un dossier existe
PHP 4, 5, 7 et 8
    fopen
Ouvre un fichier ou une URL
PHP 4, 5, 7 et 8
    function_exists
Indique si une fonction est définie
PHP 4, 5, 7 et 8
    fwrite
Écrit un fichier en mode binaire
PHP 4, 5, 7 et 8
    gmdate
Formate une date/heure GMT/TUC
PHP 4, 5, 7 et 8
    header
Envoie un en-tête HTTP brut
PHP 4, 5, 7 et 8
    ignore_user_abort
Active l'interruption de script sur déconnexion du visiteur
PHP 4, 5, 7 et 8
    ini_get
Lit la valeur d'une option de configuration
PHP 4, 5, 7 et 8
    isset
Détermine si une variable est déclarée et est différente de null
PHP 4, 5, 7 et 8
    md5
Calcule le md5 d'une chaîne
PHP 4, 5, 7 et 8
    mkdir
Crée un dossier
PHP 4, 5, 7 et 8
    ob_end_clean
Effacez le contenu du tampon de sortie actif et désactivez-le.
PHP 4, 5, 7 et 8
    ob_end_flush
none
PHP 4, 5, 7 et 8
    ob_get_contents
Retourne le contenu du tampon de sortie
PHP 4, 5, 7 et 8
    ob_get_length
Retourne la longueur du contenu du tampon de sortie
PHP 4, 5, 7 et 8
    ob_get_level
Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie
PHP 4, 5, 7 et 8
    ob_start
Enclenche la temporisation de sortie
PHP 4, 5, 7 et 8
    preg_replace
Rechercher et remplacer par expression rationnelle standard
PHP 4, 5, 7 et 8
    readfile
Affiche un fichier
PHP 4, 5, 7 et 8
    return
Retourne le controle du programme au module appelant
PHP 4, 5, 7 et 8
    rtrim
Supprime les espaces de fin de chaîne
PHP 4, 5, 7 et 8
    set_time_limit
Fixe le temps maximum d'exécution d'un script
PHP 4, 5, 7 et 8
    strtotime
Transforme un texte anglais en timestamp
PHP 4, 5, 7 et 8
    time
Retourne l'horodatage UNIX actuel
PHP 4, 5, 7 et 8
    unlink
Supprime un fichier
PHP 4, 5, 7 et 8
    urlencode
Encode une chaîne en URL
PHP 4, 5, 7 et 8

[1]

  • avatar

    Netphotos

    20 Juin 2008 à 15:24

    moi spécialement j'utilise celle ci qui est tres simple d'utilisation

    // Du code php à ne pas mettre en cache (dates, variables de session...)

    // Le script de mise en cache
    $pageurl = ereg_replace('/','-',$_SERVER['REQUEST_URI']);
    if($pageurl === '-'){ $pageurl = '-index.html'; }
    $cachedir = 'cache/'.$pageurl;
    if(@filemtime($cachedir) ob_start();

    // Le contenu de votre page à mettre en cache ici
    echo '...';

    // La suite du script de mise en cache
    $cachecontent = ob_get_contents();
    ob_end_flush();
    $fd = fopen($cachedir,'w');
    if($fd){
    fwrite($fd,$cachecontent);
    fclose($fd);
    }
    } else {
    include($cachedir);
    }
    ?>

Minimum 10 mots. Votre commentaire sera visible après validation.


 Autres snippets qui pourraient vous intéresser

Redirection PHP ancien site vers nouveau site

Compatibilité : PHP 5, PHP 7, PHP 8

Il arrive que l'on doive faire une redirection définitive d'un ancien site vers un nouveau. Il faut alors mettre en place une redirection 301 sur chaque page.

En PHP mise en colonne de datas

Compatibilité : PHP 5, PHP 7, PHP 8

Cette fonction met une mise en colonne de datas pour affichage HTML en passant le tableau et le nombre de colonnes.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts PHP / MySQL

PmWiki 2.5.9

logo PmWiki
Langue langue fr
Date  hier
Taille 0.68 Mo
Catégorie Wiki

CubeCart 6.6.2

logo CubeCart
Langue langue en
Date 16 Avril 2026
Taille 16 Mo
Catégorie Ecommerce

Magepattern 1.1

logo Magepattern
Langue langue fr
Date 15 Avril 2026
Taille 6 Mo
Catégorie CMS

PHP 8.5.5

logo PHP
Langue langue us
Date 12 Avril 2026
Taille 32 Mo
Catégorie PHP

PHP 8.4.20

logo PHP
Langue langue us
Date 12 Avril 2026
Taille 30 Mo
Catégorie PHP

Serendipity 2.6.0

logo Serendipity
Langue langue fr
Date 11 Avril 2026
Taille 15 Mo
Catégorie Blogs
avatar

Forty

  27 Mai 2008

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

22 Sept 2019
fonctionnement du code vérifié

18 507 Vues
Compatibilité du code
PHP 5, PHP 7, PHP 8
53 codes

Catégorie :  Fichiers-répertoires

Affiche la taille d'un fichier en Ko, Mo, Go, To, Po, Eo, Zo
Affiche une citation au hasard
Affiche une ligne d'un fichier de manière aléatoire
Afficher le code source d'un fichier PHP
Ajoute des lignes au début de vos fichiers textes
Calcul et affiche le nombre de ligne de plusieurs fichiers
Calcul la taille d'un dossier en Octet
Calcul la taille de répertoires et sous répertoires
Change le chmod d'un fichier par FTP
Compresse et décompresse un fichier
Compte le nombre de fichiers d'un répertoire
Compte le nombre de ligne
Copie du contenu d'un dossier en conservant l'arborescence
Copie récursive de dossiers
Copier des fichiers d'1 serveur à1 autre serveur
Création massive de fichiers zip à partir d'une table SQL
Créer un nouveau fichier
Créer un nouveau répertoire
Créer une arborescence récursivement
Découpe des fichiers volumineux
Découpe le path d'1 fichier
Déplace le pointeur de lignes
Déplace un dossier avec sous répertoires
Déplace un fichier dans un autre répertoire
Efface un répertoire et ses sous répertoires
Extrait les adresses emails d'un fichier texte
Indique si 1 répertoire existe sinon il le créer
Interprète du code PHP dans un fichier HTML
Limite la vitesse de download d'un fichier zip
Lire le contenu d'un fichier avec fopen
Lire le contenu d'un fichier ligne par ligne
Liste des répertoires et sous-répertoires
Liste un répertoire
Liste un répertoire par date
Liste un répertoire par ordre alphabétique
Liste un répertoire selon une extension
Mise en cache d'un site
Modifications dans plusieurs fichiers
Modifie massivement le contenu de fichiers texte
Obtenir l'extension d'un fichier
Obtenir l'extention d'un fichier d'une url
Réécrire un fichier en partant de la fin
Régule la vitesse de téléchargement d'un fichier local
Recherche une chaine de caractère dans un fichier
Remplace les balises BR par des \n
Renommer l'extension de fichiers
Supprime des fichiers selon une date
Supprime l'extension d'un fichier
Téléchargement de fichiers zip avec compteur
Upload basique + Formulaire
Upload Multi classe + Formulaire
Upload Multi tout type de fichiers + formulaire
Vide un répertoire de tous ses fichiers