Jeff Greenberg wrote:
When coding
realpath(file_directory_path()) . 'the/desired/filename.ext';
Isn't there an assumption that file_directory_path() is relative to the current path? Otherwise how does realpath know where it's intended to go? Which kind of brings me back to the original question, of file_directory_path being relative to...what? Will my current position, when invoking file_directory_path() always be relative to the Drupal root, even if the current page has a path that is a subdirectory off the Drupal root?
file_directory_path() is relative to the Drupal root. PHP's realpath() function is relative to the "current" directory. If you have not run chdir() anywhere, it appears that PHP sets the current directory to the directory of the original PHP file (I think?), which would be the index.php file of Drupal, which is also in the Drupal root. So it does work, somewhat magically. Incidentally, I'll just mention that the previous suggestion of $_SERVER['DOCUMENT_ROOT'] . $base_path . (whatever) is not going to work in all situations, since depending on the Apache config, the directory for some web spaces may not even be under the server's document root. For instance, on my test box the doc root is /var/www/, but I have Apache configured so that the URL http://localhost/~xyz maps to /opt/www/xyz. realpath(), on the other hand, works perfectly in this case. You can also do something like realpath( drupal_get_path('module', 'mymodulename')) if you need to reference a file in your module directory for some reason (e.g. in a test). --Jennifer -- Jennifer Hodgdon * Poplar ProductivityWare www.poplarware.com Drupal, WordPress, and custom Web programming