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 )

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

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