PHP 偽協(xié)議是一種特殊的協(xié)議,它允許開發(fā)者以類似文件路徑的方式訪問特定資源。以下是一些常見的 PHP 偽協(xié)議及其用途:
### 常見 PHP 偽協(xié)議
1. **file://**
- **用途**:訪問本地文件系統(tǒng)。
- **示例**:`file://path/to/file.txt`
2. **http:// 和 https://**
- **用途**:訪問 HTTP 或 HTTPS URL。
- **示例**:`http://example.com`
3. **ftp://**
- **用途**:訪問 FTP URL。
- **示例**:`ftp://example.com/file.txt`
4. **php://**
- **用途**:訪問各種輸入/輸出流(I/O streams)。
- **示例**:
- `php://input`:讀取原始 POST 數(shù)據(jù)。
- `php://output`:寫入輸出流。
- `php://memory` 和 `php://temp`:用于臨時數(shù)據(jù)存儲。
5. **zlib://**
- **用途**:訪問壓縮流。
- **示例**:`zlib://path/to/file.gz`
6. **data://**
- **用途**:內(nèi)聯(lián)數(shù)據(jù)(RFC 2397)。
- **示例**:`data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==`
7. **glob://**
- **用途**:查找匹配的文件路徑模式。
- **示例**:`glob://*.txt`
8. **phar://**
- **用途**:訪問 PHP 歸檔(PHAR)文件。
- **示例**:`phar://path/to/archive.phar`
9. **ssh2://**
- **用途**:通過 SSH 訪問文件。
- **示例**:`ssh2://user@host:port/path/to/file`
10. **rar://**
- **用途**:訪問 RAR 壓縮文件。
- **示例**:`rar://path/to/archive.rar`
11. **ogg://**
- **用途**:訪問 OGG 音頻流。
- **示例**:`ogg://path/to/audio.ogg`
12. **expect://**
- **用途**:處理交互式流。
- **示例**:`expect://command`
### 示例代碼
以下是一個使用 `php://input` 讀取原始 POST 數(shù)據(jù)的示例:
```php
<?php
// 讀取原始 POST 數(shù)據(jù)
$data = file_get_contents("php://input");
echo $data;
?>
```
使用 `php://filter` 進行 Base64 編碼的示例:
```php
<?php
// 讀取并 Base64 編碼文件內(nèi)容
$data = file_get_contents("php://filter/read=convert.base64-encode/resource=path/to/file.txt");
echo $data;
?>
```
這些偽協(xié)議在特定場景下非常有用,可以簡化資源訪問和數(shù)據(jù)處理。