You are here:About>Computing & Technology>PHP / MySQL> Learn PHP> PHP_SELF PHP - SCRIPT_NAME PHP - REQUEST_URI PHP
About.comPHP / MySQL
Newsletters & RSSEmail to a friendSubmit to Digg

Using $_SERVER in PHP

From Angela Bradley,
Your Guide to PHP / MySQL.
FREE Newsletter. Sign Up Now!

$_SERVER[’PHP_SELF’] - $_SERVER[’SCRIPT_NAME’] - $_SERVER['REQUEST_URI']

$_SERVER[’PHP_SELF’], $_SERVER['REQUEST_URI'], and $_SERVER[’SCRIPT_NAME’] all behave in similar ways, they return information about what file is being used. When exposed to some differnt scenarios, you can see in some cases they do behave differently. This can help you decide which is best for what you need in your script.

$_SERVER[’PHP_SELF’]

  • http://www.yoursite.com/example/ -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php?a=test -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php/dir/test -- -- -- /dir/test

When we use $_SERVER[’PHP_SELF’] we have the file name /example/index.php returned to us both when we did and did not actully type it in the URL. When we appended variables to the end of it, they where truncated and again /example/index.php was returned. The only one that produced a different result was when we appended directories after the file name. In that case, it returned those directories.

$_SERVER['REQUEST_URI']

  • http://www.yoursite.com/example/ -- -- -- /
  • http://www.yoursite.com/example/index.php -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php?a=test -- -- -- /example/index.php?a=test
  • http://www.yoursite.com/example/index.php/dir/test -- -- -- /example/index.php/dir/test

In all of our examples, this returned exactly what we entered for the URL. It returned a plain /, the file name, the variables, and the appended directories, all just as they had been entered.

$_SERVER[’SCRIPT_NAME’]

  • http://www.yoursite.com/example/ -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php?a=test -- -- -- /example/index.php
  • http://www.yoursite.com/example/index.php/dir/test -- -- -- /example/index.php

In all cases here we were returned only the file name /example/index.php regardless of if it was typed, not typed, or anything was appended to it.

 All Topics | Email Article | | |
Advertising Info | News & Events | Work at About | SiteMap | Reprints | HelpOur Story | Be a Guide
User Agreement | Ethics Policy | Patent Info. | Privacy Policy©2008 About, Inc., A part of The New York Times Company. All rights reserved.