|
chdir
Change directory
(PHP 4, PHP 5)
Example 503. chdir() example<?php The above example will output something similar to: /home/vincent Code Examples / Notes » chdirherwin
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) |