ID:               44293
 User updated by:  mmichel at chez dot com
 Reported By:      mmichel at chez dot com
 Status:           Open
 Bug Type:         Filesystem function related
 Operating System: Win2003
 PHP Version:      5.2.5
 New Comment:

Addendum from my 3 Mar 1:56pm UTC comment:
Whilst php is able to give me the realpath of the script
http://localhost/elsewhere/test.php , asking for the realpath of
http://localhost/elsewhere in the http://localhost/local/test.php script
fails.


Previous Comments:
------------------------------------------------------------------------

[2008-03-03 14:17:37] mmichel at chez dot com

@jani: typo was in the comment, not in my code. I checked :-)

------------------------------------------------------------------------

[2008-03-03 13:56:32] mmichel at chez dot com

@jani:
Virtual dir is kind of a symlink handled by IIS rather than the OS.
Thus, the document_root for http://localhost/elsewhere/test.php is
different from the one for http://localhost/local/test.php

Still, browsing to http://localhost/elsewhere works, and executing
http://localhost/elsewhere/test.php works.

------------------------------------------------------------------------

[2008-03-03 13:46:00] [EMAIL PROTECTED]

.
.
$check_path=realpath($virt);
print ($checkpath === FALSE) ? "virtual dir not recognized<br>" :
.
.

That's your code, note the tiny typo there? :)

>From the manual:
realpath() returns FALSE on failure, e.g. if the file does not exist.

I don't know what these 'Virtual dirs' are in IIS, but I guess they're
not _filesystem_ things. realpath() is meant to be used with
_filesystem_..

------------------------------------------------------------------------

[2008-03-03 13:45:05] mmichel at chez dot com

Moreover:
On this page http://php.uli.it/manual/hk/function.realpath.php
a comment provides this:
=8<=================================================================
This is a modified version of the code written by Dave, wich finds the
absolute path of a virtual path, this function returns the absolute
path, If you have php running on IIS Plataform you could find this very
usefull

function mappath2($path) {
//this here bellow trims the last / in case it has it
If ($path{strlen($path)-1}=="/"){
$path = substr($path,0, strlen($path)-1);
}
$relative = str_repeat('../',substr_count($path,'/')-1);
// transforms virtual or relative path to an absolute path 
return realpath(substr($path,0,1)=='/' ? $relative.substr($path,1) :
$path); 
}

the implementation would be like this
having

$imagepath = "/website001/images/catalog/";

$realpath = mappath2($imagepath);

The result in $realpath would be something like
C:\Inetpub\wwwroot\website001\images\catalog
=8<=================================================================

I tried the function and it did not worked.

------------------------------------------------------------------------

[2008-03-03 13:39:57] mmichel at chez dot com

it returns:
string(22) "C:\Inetpub\wwwroot\local" 
bool(false)

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/44293

-- 
Edit this bug report at http://bugs.php.net/?id=44293&edit=1

Reply via email to