apache_lookup_uri

(PHP 4, PHP 5, PHP 7, PHP 8)

apache_lookup_uri Realiza una petición parcial para el URI especificado y devuelve toda la información relacionada con el mismo

Descripción

apache_lookup_uri(string $filename): object|false

Esta función realiza una petición parcial para el URI especificado. Esta petición permite simplemente obtener toda la información importante sobre el recurso concernido.

Esta función está soportada sólo cuando PHP está instalado como un módulo de Apache.

Parámetros

filename

El nombre del fichero (URI) que será solicitado.

Valores devueltos

Un objeto con la información relativa al URI. Las propiedades del objeto son las siguientes :

  • 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

Devuelve false en caso de fallo.

Ejemplos

Ejemplo #1 Ejemplo con apache_lookup_uri()

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

if (
file_exists($info->filename)) {
echo
'¡El fichero existe!';
}
?>

El resultado del ejemplo sería algo similar a:

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
)
¡El fichero existe!

add a note

User Contributed Notes 3 notes

up
0
tester
17 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
0
niels dot kootstra at gmail dot com
17 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
22 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