2009-11-07 3 views
1

ici est le snippitquelqu'un peut-il expliquer ce que ce code php fait ou son but

$thisFile = str_replace('\\', '/', __FILE__); 
$docRoot = $_SERVER['DOCUMENT_ROOT']; 

$webRoot = str_replace(array($docRoot, 'library/config.php'), '', $thisFile); 
$srvRoot = str_replace('library/config.php', '', $thisFile); 

si je sauverai cela en test.php comme un fichier. La section sur laquelle je suis confus est comment str_replace fait la valeur $ webRoot sortir à test.php

Répondre

1

La variable __FILE__ est le nom du fichier source actuel, ou "test.php".

+1

Cela résout le mystère ... soupir ... Homme, si vous allez poster une réponse, au moins faire sonner comme un ... – Seb

2

Ce code va calculer le chemin absolu du système de fichiers ($srvRoot) et le chemin d'URL absolu ($webRoot) vers un répertoire d'application, je suppose, à partir duquel le fichier actuel peut être adressé relativement par library/config.php.

__FILE__ est une constante magique et contient le chemin absolu du système de fichiers vers le fichier dans lequel la constante est utilisée. $thisFile contiendra ce chemin du système de fichiers où les barres obliques inverses sont remplacées par des barres obliques. $docRoot est le chemin absolu du système de fichiers vers le répertoire racine accessible depuis le Web.

Ainsi, par exemple, si __FILE__ est /var/www/htdocs/apps/foobar/library/config.php et $_SERVER['DOCUMENT_ROOT'] est /var/www/htdocs, $webRoot est /apps/foobar/ et $srvRoot est /var/www/htdocs/apps/foobar/.