Apparently on PHP 4.2, this function returns an array instead of an object.
That being the case, the example code above would translate to:
<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);
if (file_exists($info['filename'])) {
echo 'file exists!';
}
?>
A means of making this transparent so that the object syntax works, is left as an exercise for the reader. ;-)
apache_lookup_uri
(PHP 4, PHP 5)
apache_lookup_uri — Perform a partial request for the specified URI and return all info about it
Description
object apache_lookup_uri ( string $filename )This performs a partial request for a URI. It goes just far enough to obtain all the important information about the given resource.
This function is only supported when PHP is installed as an Apache module.
Parameters
- filename
The filename (URI) that's being requested.
Return Values
An object of related URI information. The properties of this object are:
| status |
| the_request |
| status_line |
| method |
| content_type |
| handler |
| uri |
| filename |
| path_info |
| args |
| boundary |
| no_cache |
| no_local_copy |
| allowed |
| send_bodyct |
| bytes_sent |
| byterange |
| clength |
| unparsed_uri |
| mtime |
| request_time |
Examples
Example 199. apache_lookup_uri() example
<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);
if (file_exists($info->filename)) {
echo 'file exists!';
}
?>
The above example will output something similar to:
stdClass Object
(
[status] => 200
[the_request] => GET /dir/file.php HTTP/1.1
[method] => GET
[mtime] => 0
[clength] => 0
[chunked] => 0
[content_type] => application/x-httpd-php
[no_cache] => 0
[no_local_copy] => 1
[unparsed_uri] => /dir/index.php?var=value
[uri] => /dir/index.php
[filename] => /home/htdocs/dir/index.php
[args] => var=value
[allowed] => 0
[sent_bodyct] => 0
[bytes_sent] => 0
[request_time] => 1074282764
)
file exists!
apache_lookup_uri
trejkaz
05-Aug-2005 01:09
05-Aug-2005 01:09
redbeard at mdjohnson dot nospam dot us
18-Apr-2003 12:15
18-Apr-2003 12:15
A useful feature is that if you have content negotiation on (Options MultiViews) Apache will resolve the negotiation for you if possible. Thus www.example.com/blah will resolve to /base/blah.php or /base/blah.html or even /base/blah.en.html as appropriate.
