[Linux-bruxelles] kt-dms : question pour pro du php

Yannick Warnier ywarnier at beeznest.org
Mer 11 Aou 10:48:56 CEST 2004


Le mer 11/08/2004 à 08:45, Didrik Pinte a écrit :
> Salut,
> 
> Je viens d'installer kt-dms. Ca tourne pas mal mais j'ai déjà trouvé un
> petit bug... 
> 
> kt-dms crée un répertoire par défaut appelé "Root Folder". Lorsque je
> veux créé un sous-répertoire dans l'application php, j'ai l'erreur
> suivante :
> 
> Warning: mkdir(/usr/local/knowledgeTree/Documents/Root
> Folder/Programming/test/): No such file or directory in
> /usr/local/knowledgeTree/lib/foldermanagement/PhysicalFolderManagement.inc on line 40
> 
> Visiblement, il n'y a pas eu de conversion du répertoire "Root Folder"
> en "Root\ Folder". Comment peut-on faire ça en php ? 
> 
> Le code de la fonction problématique est le suivant : 
> 
> 	function createFolder($sPath) {
>         // check if a folder with this name exists before creating
> it        
>         if (!file_exists($sPath)) {
> 			return mkdir(rtrim($sPath), 0755);
>         } else {
>         	return true;
>         }
> 	}
> 
> Merci d'avance pour vos conseils,


On dirait qu'il n'y a pas de fonction spécifiques à ce cas-là mais tu
peux utiliser str_replace:

return mkdir(str_replace(' ','\ ',rtrim($sPath)), 0755);

Ceci dit si tu veux que ton code soit portable (je ne sais pas comment
un mkdir('Root\ Folder') fonctionnera sous Windows) il se pourrait que
tu doives placer une condition genre:
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'){
	return mkdir(rtrim($sPath), 0755);
}else{
	return mkdir(str_replace(' ','\ ',rtrim($sPath)), 0755);
}
(tout ça en ajoutant le if (file_exists(...)) bien entendu.

Yannick





Plus d'informations sur la liste de diffusion Linux-bruxelles