2016-06-27 23 views
0

In einigen Fällen ziehen es einige von uns vor, das Skript in ein Unterverzeichnis einzufügen, z. B .: http://example.com/Script/index.php, und andere bevorzugen es, das Skript in das Stammverzeichnis ex: http://example.com/index.php einzufügen.Woher weiß ich, ob das Skript innerhalb eines Unterverzeichnisses funktioniert oder nicht?

Wie zu wissen, ob das Skript in einem Unterverzeichnis oder nicht?

+0

durch Blick auf die URL oder Dateipfad? nicht wirklich sicher, was du fragst. vielleicht willst du '__DIR__'? –

+0

@Dagon: Ich möchte programmgesteuert wissen, ob der Benutzer die Skriptdateien in einem Unterverzeichnis oder direkt in root hinzugefügt hat. In Bezug auf '__DIR__' ist diese Arbeit nicht geeignet –

Antwort

0

Nun, es sollte ziemlich einfach sein. Denken Sie daran, wenn __FILE__ ein Symlink ist, würde es einige Anpassungen benötigen.

$root = $_SERVER['DOCUMENT_ROOT']; 

/** 
* @var bool TRUE if current script is in DOCUMENT ROOT, FALSE otherwise. 
*/ 
$inRoot = __FILE__ == $root . DIRECTORY_SEPARATOR . basename(__FILE__); 

#OR 
$inRoot = dirname($_SERVER['SCRIPT_FILENAME']) == $_SERVER['DOCUMENT_ROOT']; 
+0

Danke, aber leider bekomme ich in beiden Fällen das gleiche Ergebnis ->' false'. –

+0

Es funktioniert für mich. Ziemlich sicher, dass du etwas falsch machst. Hast du '$ _SERVER ['DOCUMENT_ROOT'] 'Wert gesehen? Können Sie jeden Teil des obigen Skripts debuggen? Wie auch immer, ich denke du hast es verstanden! ;) – felipsmartins

+0

'$ _SERVER ['DOCUMENT_ROOT']' = 'C:/Programme (x86)/wamp/www' ,' __FILE__' = 'C: \ Programme (x86) \ wamp \ www \ script \ system \ Router.php'. –

0

... oder vielleicht können Sie Getcwd() versuchen. Gibt das aktuelle Arbeitsverzeichnis bei Erfolg oder FALSE bei Fehler zurück.

+0

Ich danke Ihnen, aber wenn ich' getcwd() 'und das Skript im Unterverzeichnis verwende, wird das Ergebnis' C: \ Programme (x86) \ wamp \ www \ script ', während das Skript im Stammverzeichnis das Ergebnis' C: \ Programme (x86) \ wamp \ www 'erhält. wie du im zweiten ergebnis gesehen hast zwar das script im root aber das ergebnis nicht "falsch" wie erwartet –