Perform an Apache sub-request

- « getallheaders

- FastCGI Process Manager »

- PHP Manual
- Apache Functions
- Perform an Apache sub-request

# virtual

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

virtual — Perform an Apache sub-request

### Description

virtual(string `$uri`): bool

virtual() is an Apache-specific function which is similar to `<!--#include virtual...-->` in `mod_include`. It performs an Apache sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you would parse through Apache. Note that for a CGI script, the script must generate valid CGI headers. At the minimum that means it must generate a `Content-Type` header.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

This function is supported when PHP is installed as an Apache module webserver.

### Parameters

`uri`

  The file that the virtual command will be performed on.

### Return Values

Performs the virtual command on success, or returns `false` on failure.

### Examples

See apache_note() for an example.

### Notes

Warning

The query string can be passed to the included file but $_GET is copied from the parent script and only $_SERVER['QUERY_STRING'] is filled with the passed query string. The query string may only be passed when using Apache 2. The requested file will not be listed in the Apache access log.

> Note:

> Environment variables set in the requested file are not visible to the calling script.

> Note:

> This function may be used on PHP files. However, it is typically better to use include or require for PHP files.

### See Also

- apache_note() - Get and set apache request notes