2010-04-23 13 views
3

Je dois modifier le dossier sur lequel sont basés les chemins d'inclusion relatifs.Modification du chemin de base dans PHP

Je pourrais être actuellement "dans" ce dossier: C: \ ABC \ XYZ \ 123 \ ZZZ

Et dans ce cas, le chemin "../../Source/SomeCode.php" serait en fait être dans ce dossier: C: \ ABC \ XYZ \ Source

Et realpath ('.') serait = 'C: \ ABC \ XYZ \ 123 \ ZZZ';

Si toutefois, realpath ('') étaient "C: \ some \ Autres \ Dossier"

Ensuite, dans ce cas, le chemin "../../Source/SomeCode.php" serait en fait être dans ce dossier: C: \ Some \ Source

Comment changer le dossier représenté par '.' dans realpath()?

Comme ceci:

echo ('BEFORE = '.realpath('.')); // BEFORE = C:\ABC\XYZ\123\ZZZ 
// Some PHP code here... 
echo ('AFTER = '.realpath('.')); // AFTER = C:\Some\Other\Folder 

Comment puis-je changer le dossier représenté par, comme on le voit par realpath() ''?

Répondre

4

La fonction chdir() fait cela. Par exemple:

echo ('BEFORE = '.realpath('.')); // BEFORE = C:\ABC\XYZ\123\ZZZ 
chdir('C:/Some/Other/Folder'); 
echo ('AFTER = '.realpath('.')); // AFTER = C:\Some\Other\Folder 
+1

N'utilisez pas d'antislash. Utilisez les barres obliques Cela fonctionne sur * tous * les systèmes d'exploitation. – wallyk

+0

Eh bien, oui, mais C: \ ne le ferait pas, alors ça n'a pas vraiment d'importance. –

+0

Cela compte, car il affecte la portabilité. À moins que vous ayez une exigence absolue de référencer la lettre de lecteur, vous devez utiliser des chemins de type Unix et laisser PHP les traduire pour vous. C'est pourquoi la fonctionnalité est là. – awgy

1

Utilisez la fonction chdir().

+0

+ 1 merci, j'ai appris quelque chose de nouveau! – alex

Questions connexes