apache_lookup_uri

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

apache_lookup_uri -- 对指定的 URI 执行部分请求并返回所有有关信息

说明

object apache_lookup_uri ( string filename )

本函数对一个 URL 执行部分请求。取得所有有关给定资源的重要信息后就停手。

此函数仅在 PHP 作为 Apache 模块安装时才可使用。

参数

filename

被请求的文件名(URI),失败时为 FALSE

返回值

一个有关 URI 信息的 object。此 object 的属性有:

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

范例

例子 1. apache_lookup_uri() 例子

<?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
trejkaz
05-Aug-2005 09:09
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. ;-)
redbeard at mdjohnson dot nospam dot us
18-Apr-2003 08: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.