PHP伪协议是一种特殊的URL格式,允许开发者以不同于传统文件路径访问和操作资源。以下是一些常见的PHP伪协议及其详细介绍:
常见的PHP伪协议
1. **file://**
- **用途**:访问本地文件系统。
- **示例**:`file:///path/to/file.txt`。
2. **http:// 和 https://**
- **用途**:访问HTTP(S) URLs。
- **示例**:`http://example.com`。
3. **ftp://**
- **用途**:访问FTP(S) URLs。
- **示例**:`ftp://example.com/file.txt`。
4. **php://**
- **用途**:访问各种输入/输出流(I/O streams)。
- **子协议**:
- `php://stdin`、`php://stdout`、`php://stderr`:标准输入、输出和错误流。
- `php://input`:访问请求的原始数据流。
- `php://memory` 和 `php://temp`:在内存或临时文件中读写数据。
5. **php://filter**
- **用途**:在数据流打开时应用过滤器。
- **示例**:`php://filter/read=convert.base64-encode/resource=example.txt`。
6. **zlib://**
- **用途**:压缩流。
- **示例**:`zlib://path/to/file.gz`。
7. **data://**
- **用途**:内联数据流(RFC 2397)。
- **示例**:`data://text/plain;base64,SGVsbG8sIFdvcmxkIQ==`。
8. **glob://**
- **用途**:查找匹配的文件路径模式。
- **示例**:`glob://*.txt`。
9. **phar://**
- **用途**:访问PHP归档文件(PHAR)。
- **示例**:`phar://path/to/archive.phar/file.php`。
10. **ssh2://**
- **用途**:通过SSH2协议访问资源。
- **示例**:`ssh2.sftp://user:pass@example.com/path/to/file`。
11. **rar://**
- **用途**:访问RAR压缩包。
- **示例**:`rar://path/to/archive.rar/file.txt`。
12. **ogg://**
- **用途**:访问OGG音频流。
- **示例**:`ogg://path/to/file.ogg`。
13. **expect://**
- **用途**:处理交互式流。
- **示例**:`expect://command`。
示例代码
以下是一个使用 `php://filter` 伪协议的示例代码:
```php
echo file_get_contents("php://filter/read=convert.base64-encode/resource=data://text/plain,Hello World!");
// 输出:SGVsbG8gV29ybGQh
?>
```
- 某些伪协议可能需要特定的PHP配置选项(如 `allow_url_fopen` 和 `allow_url_include`)启用。