blog actif depuis 1328 jours.

retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster

 

Ven.

26

Mars

 
Une chose à savoir si vous cherchez à accéder à un fichier avec la méthode __destruct d'une classe PHP : le chemin de base pris en compte est le root du serveur, et non pas le chemin d'execution de la classe, ou encore du script qui instancie la classe.
Pour s'en rendre compte, il suffit de tester la classe suivante :
class test
{
    function __construct()
    {
        echo "The class: ".__CLASS__." is being constructed in ".getcwd().'<br />';
    }

    function __destruct()
    {
        echo "The class: ".__CLASS__." is being DESTRUCTED in ".getcwd()."<br />";
    }
}

Cette classe se trouve dans le répertoire classes de notre site dont la racine se trouve sur /sites/monsite/
l'instanciation de la classe par un script à la racine du site :
include "classes/classe_test.inc.php";
$obj = new test();
exit();
donne le résultat suivant :
The class: test is being constructed in /sites/monsite
The class: test is being DESTRUCTED in /

Donc si vous cherchez à accéder à un fichier pour le lire, le modifier dans la méthode __destruct, pensez à mettre le chemin absolu du fichier sur le serveur.
Par exemple, pour accéder au fichier /temp/fichier.txt, indiquez "/sites/monsite/temp/fichier.txt" ou $_SERVER['DOCUMENT_ROOT']."/temp/fichier.txt";

 

Commentaires

Aucun commentaire

 

Ajouter un commentaire

nom / pseudo :
e-mail :

(Votre e-mail ne sera ni exploité, ni divulgué.)

site (facultatif)
 
romualb.com est sur Facebook
<Février 2012 
LunMarMerJeuVenSamDim
  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