apache_lookup_uri

(PHP 4, PHP 5)

apache_lookup_uriPerform a partial request for the specified URI and return all info about it

說明

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.

此函式僅在 PHP 作為 Apache 模組安裝時才可使用。

參數

filename

The filename (URI) that's being requested.

回傳值

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

範例

Example #1 apache_lookup_uri() example

<?php
$info 
apache_lookup_uri('index.php?var=value');
print_r($info);

if (
file_exists($info->filename)) {
    echo 
'file exists!';
}
?>

上例的輸出類似於:

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!

add a note add a note

User Contributed Notes 3 notes

up
1
tester
16 years ago
bug: with apache 2, apache_lookup_uri("/directory") spits out a warning and fails to return anything.  apache_lookup_uri("/directory/") works.

another bug: virtual("something") forces a header flush.  I know it's documented, but it would be rather wonderful if it didn't do this.  You never ever want to flush headers when you're using virtual() to include a dynamic file such as a PHP or Perl file, which excludes virtual() from being used on most of any website's contents :-(.
up
1
niels dot kootstra at gmail dot com
16 years ago
It's a very usefull function but it doesn't show all outputs. For example I only see:
[status]
[the_request]
[method]
[mtime]
[clength]
[chunked]
[content_type]
[no_cache]
[no_local_copy]
[unparsed_uri]
[uri]
[filename]
[path_info]
[allowed]
[sent_bodyct]
[bytes_sent]
[request_time]
up
0
redbeard at mdjohnson dot nospam dot us
21 years ago
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.
To Top