 
Le fichier actuel se trouve dans 2 constantes :
Les résultats sont un peu différents, __FILE__ est plus complet:
echo $REQUEST_URI;
  renvoie :
  /dossier/sousdossier/fichierquelconque.php
 echo __FILE__;
  renvoie :
  /home/sites/site18/web/dossier/sousdossier/fichierquelconque.php
Notez que dans aucun des cas nous n'avons un URI qui commence par http://www...
ATTENTION : différence fondamentale entre les deux constantes $REQUEST_URI et __FILE__:
Imaginons le cas suivant :
<html><head> 
  <title></title> </head>
  <body>
    <? include ("testinclude.php"); 
  ?>
  </body>
  </html>
<? 
  echo "request_uri : ".$REQUEST_URI; 
  
  echo "<BR>";
  echo "file : ".__FILE__;
  ?>
Que va-t-il afficher ? test.php ou testinclude.php ? En fait, voici l'affichage :
requesturi : /eclat2/test/test.php
  file : /home/sites/site23/web/eclat2/test/testinclude.php 
  
Donc, on va utiliser __FILE__ si on désire le nom du fichier inclus, et $REQUEST_URI si on veut le fichier appelant.
Pour n'avoir que le nom du fichier (la fin de l'URL, a partir 
  du dernier /, en excluant celui ci :
   echo str_replace("/", 
  "", strrchr(__FILE__,"/"));
  echo str_replace("/", "", 
  strrchr($REQUEST_URI,"/")); 
Pour avoir le nom du fichier, sans son extension (machin de machin.inc.php par exemple) :
// Récupération 
  de la fin de la chaîne (dès le dernier / ):
  $Fichier = str_replace("/", "", strrchr(__FILE__,"/")); 
  // ou $REQUEST_URI bien sûr
  // On parcourt la chaîne jusqu'au premier point rencontré :
  for ($Ctr=0 ;$Ctr<=strlen($Fichier);$Ctr++)
    {
    if ($Fichier[$Ctr] == ".") break;
    $FichierSansExt = $FichierSansExt.$Fichier[$Ctr];
    }
  echo $FichierSansExt;
touch("monfichier.dat")
echo file_exists("trucmachin.txt");
rename("anciennom.txt" , "nouveaunom.txt");
$fichier="test.txt";
  $ligne=file($fichier);
  echo sizeof($ligne); // Nombre 
  de lignes
  echo filesize($ligne); // Nombre 
  de caractères
$DossierCourant = opendir(".");
  closedir($DossierCourant); 
$DossierCourant = opendir(".");
  $UnFichier = readdir($DossierCourant);
  echo $UnFichier;
  closedir($DossierCourant); 
  
A chaque lecture de readdir($DossierCourant), on va avancer d'un fichier à afficher, comme ceci :
$DossierCourant = opendir(".");
  $UnFichier 
  = readdir($DossierCourant);
  echo $UnFichier , "<BR>"; 
  $UnFichier = readdir($DossierCourant);
  echo $UnFichier 
  , "<BR>"; 
  $UnFichier 
  = readdir($DossierCourant);
  echo $UnFichier 
  , "<BR>"; 
  $UnFichier = readdir($DossierCourant);
  echo $UnFichier 
  , "<BR>"; 
  closedir($DossierCourant); 
  
Affichera selon le contenu du dossier courant :
.
  ..
  UnFichierQuelconque.htm
  UnAutreFichierExemple.php
Nous avons vu qu'a chaque appel de readdir, on avance d'un fichier. Vient un moment ou tout le dossier courant a été parcouru. Dès ce moment, $UnFichier = readdir($DossierCourant); ne contient plus rien. C'est cette particularité que nous allons utiliser avec while : Nous allons en une seule ligne affecter la variable $UnFichier=readdir($DossierCourant), et la comparer avec une chaîne vide : <> "".
$DossierCourant = opendir(".");
  while (($UnFichier=readdir($DossierCourant)) 
  <> "")
    echo $UnFichier , "<BR>";
  closedir($DossierCourant); 
   
Et, en fait, nous n'avons pas besoin de faire la comparaison <> "", car la simple affectation $UnFichier=readdir($DossierCourant) suffit à ce que la comparaison soit vraie. L'écriture condensée suivante est suffisante, et très usitée :
$DossierCourant = opendir(".");
  while ($UnFichier=readdir($DossierCourant))
    echo $UnFichier , "<BR>";
  closedir($DossierCourant); 
L'affichage sera le suivant selon le contenu du dossier:
.
  ..
  index.htm
  MachinBidule.php
  FichierDebile.php
  Oulala.txt
    
$DossierCourant = opendir(".");
  while (($UnFichier=readdir($DossierCourant)) <> "")
    {
    if (($UnFichier <> ".") 
  && ($UnFichier <> ".."))
      echo $UnFichier , "<BR>";
    }
  closedir($DossierCourant); 
   
Il s'agit d'abord de se remémorer la syntaxe HTML pour créer 
  un lien hypertexte :
  <a 
  href="UnFichierDebile.htm">Cliquez ici pour aller au 
  fichier débile</a> 
Maintenant, c'est un jeu d'enfant de faire l'affichage en utilisant la concaténantion :
if (($UnFichier <> 
  ".") && ($UnFichier <> ".."))
    echo "<A HREF=" , $UnFichier 
  , ">" , 
  $UnFichier , "</A><BR>";
Il y a 2 fois $UnFichier, une fois pour faire le lien hypertexte, et une fois pour l'afficher.
Il s'agit de récupérer l'ensemble des fichiers qui se terminent par .htm. Pour ce faire, nous allons utiliser la fonction de recherche de chaîne eregi, telle qu'elle est expliquée dans le chapitre Chaînes de caratères.
Rappel :
  eregi ("(.*).htm" 
  , "MachinBidule.htm" , $Stockage);
  echo $Stockage[1];
va afficher
  MachinBidule
Et si le fichier ne se terminait pas par .htm, l'affichage aurait été ... Rien du tout !
Voici le code complet final de l'ensemble de tous les fichiers se terminant par .htm, avec un lien hypertexte qui pointe vers eux
$DossierCourant = opendir(".");
  while (($UnFichier=readdir($DossierCourant)) <> "")
    {
    if (($UnFichier <> ".") && ($UnFichier <> 
  ".."))
      {
      eregi ("(.*).htm" , $UnFichier , $Stockage);
      if ($Stockage[1])
        echo "<A HREF=" , $UnFichier 
  , ">" , $UnFichier , "</A><BR>";
      }
    }
  closedir($DossierCourant); 
---