Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Directory Functions : chdir

chdir

Change directory (PHP 4, PHP 5)
bool chdir ( string directory )

Changes PHP's current directory to directory.

Parameters

directory

The new current directory

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example 503. chdir() example

<?php

// current directory
echo getcwd() . "\n";

chdir('public_html');

// current directory
echo getcwd() . "\n";

?>

The above example will output something similar to:

/home/vincent
/home/vincent/public_html


Notes

Note:

When safe mode is enabled, PHP checks whether the directory in which you are about to operate has the same UID (owner) as the script that is being executed.

See Also
getcwd()

Code Examples / Notes » chdir

herwin

When using PHP safe mode and trying to change to a dir that is not accessible due to the safe mode restrictions, the function simply fails without generating any kind of error message.
(Tested in PHP 4.3.10-16, Debian Sarge default)


andy dot clark

This only changes the directory for PHP, the output directory stays the same. If you are trying to access images from a relative path and you use the following then it will fail to render the image:
chdir ('images');
if (file_exists('php.gif'))
{
echo '<html>';
echo '<body>';
echo '<img src="php.gif">';
echo '</body></html>';
}
//However, it is possible to use the <base> tag in the header to change the directory for the resulting HTML, as you can see however this requires you to put the full path in place.
chdir ('images');
if (file_exists('php.gif'))
{
echo '<html>';
echo '<head><base href = "http://uk.php.net/images/"></head>';
echo '<body>';
echo '<img src="php.gif">';
echo '</body></html>';
}


jeprubio _at_ gmail dot com

If you run this script when $sym_dir is a symbolic link to a directory:
 echo getcwd()."\n";
 chdir ($sym_dir);
 chdir ('../');
 echo getcwd()."\n";
It returns for example:
 /dades/loc/real/mapes/navteq/anloc
 /mapes/anloc
It will not return to the previous directory, it returns to the parent of the real directory where it links the symbolic link.
It's not necessary a bug but I think it's important to have present this.
It could be solved saving the current directory and then returning to it. For example:
 $cwd = getcwd();
 echo getcwd()."\n";
 chdir ($sym_dir);
 chdir ($cwd);
 echo getcwd()."\n";
It returns:
 /dades/loc/real/mapes/navteq/anloc
 /dades/loc/real/mapes/navteq/anloc
Have fun :)
-------
  Josep Rubio (Anloc S.L. www.anloc.net)


Change Language


Follow Navioo On Twitter
chdir
chroot
dir
closedir
getcwd
opendir
readdir
rewinddir
scandir
eXTReMe Tracker