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]
apache_lookup_uri
(PHP 4, PHP 5)
apache_lookup_uri — درخواست جزئی برای URI مشخص شده انجام بده و تمام اطلاعات درباره آن را بازگردان
Description
object apache_lookup_uri
( string $filename
)
این تابع درخواستی جزئی برای یک URI انجام میدهد. این تابع تنها تا جایی پیشروی میکند که تمام اطلاعات مهم را بدست آورد.
This function is only supported when PHP is installed as an Apache module.
Parameters
- filename
-
نام فایل (URI) درخواست شده.
Return Values
object از اطلاعات URI مربوط. ویژگیهای این 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
Examples
Example #1 مثال apache_lookup_uri()
<?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!
niels dot kootstra at gmail dot com ¶
5 years ago
tester ¶
5 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 :-(.
redbeard at mdjohnson dot nospam dot us ¶
10 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.
