原文:PHP函數(shù)參考15-URLs相關處理函數(shù) - 9ong
處理URL字符串: 編碼缠劝,解碼和解析。
- base64_decode — 對使用 MIME base64 編碼的數(shù)據(jù)進行解碼
- base64_encode — 使用 MIME base64 對數(shù)據(jù)進行編碼
設計此種編碼是為了使二進制數(shù)據(jù)可以通過非純 8-bit 的傳輸層傳輸亮钦,例如電子郵件的主體蛤吓。
Base64-encoded 數(shù)據(jù)要比原始數(shù)據(jù)多占用 33% 左右的空間。
-
get_headers — 取得服務器響應一個 HTTP 請求所發(fā)送的所有標頭
如果將可選的 format 參數(shù)設為 1亿眠,則 get_headers() 會解析相應的信息并設定數(shù)組的鍵名碎罚。
url = 'http://www.example.com'; print_r(get_headers($url, 1));//format參數(shù)設置為1
Array ( [0] => HTTP/1.1 200 OK [Date] => Sat, 29 May 2004 12:28:14 GMT [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT [ETag] => "3f80f-1b6-3e1cb03b" [Accept-Ranges] => bytes [Content-Length] => 438 [Connection] => close [Content-Type] => text/html )
-
get_meta_tags — 從一個文件中提取所有的 meta 標簽 content 屬性,返回一個數(shù)組
打開 filename 逐行解析文件中的 <meta> 標簽纳像。解析工作將在 </head> 處停止荆烈。
支持本地文件與url。
-
http_build_query — 生成 URL-encode 之后的請求字符串
使用給出的關聯(lián)(或下標)數(shù)組生成一個經(jīng)過 URL-encode 的請求字符串竟趾。
$data = array('foo'=>'bar', 'baz'=>'boom', 'cow'=>'milk', 'php'=>'hypertext processor'); echo http_build_query($data) . "\n";
foo=bar&baz=boom&cow=milk&php=hypertext+processor
parse_url — 解析 URL憔购,返回其組成部分
```php
parse_url( string $url[, int $component = -1] ) : mixed
```
注意:本函數(shù)不是用來驗證給定 URL 的合法性的,只是將其分解為下面列出的部分岔帽。不完整的 URL 也被接受倦始,parse_url() 會嘗試盡量正確地將其解析。
指定 PHP_URL_SCHEME山卦、 PHP_URL_HOST鞋邑、 PHP_URL_PORT、 PHP_URL_USER账蓉、 PHP_URL_PASS枚碗、 PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一個來獲取 URL 中指定的部分的 string铸本。
```php
print_r(parse_url("http://www.9ong.com/aa/bb?a=b#id"));
```
```
Array
(
[scheme] => http
[host] => www.9ong.com
[path] => /aa/bb
[query] => a=b
[fragment] => id
)
```
-
urlencode — 編碼 URL 字符串
返回字符串肮雨,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進制數(shù),空格則編碼為加號(+)箱玷。此編碼與 WWW 表單 POST 數(shù)據(jù)的編碼方式是一樣的怨规,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由于歷史原因锡足,此編碼在將空格編碼為加號(+)方面與 ? RFC3986 編碼(參見 rawurlencode())不同波丰。
-
urldecode — 解碼已編碼的 URL 字符串
注意:超全局變量 _REQUEST 已經(jīng)被解碼了。對 _REQUEST 里的元素使用 urldecode() 將會導致不可預計和危險的結果舶得。
-
rawurlencode — 按照 RFC 3986 對 URL 進行編碼
返回字符串掰烟,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進制數(shù)。這是在 ? RFC 3986 中描述的編碼,是為了保護原義字符以免其被解釋為特殊的 URL 定界符纫骑,同時保護 URL 格式以免其被傳輸媒體(像一些郵件系統(tǒng))使用字符轉換時弄亂蝎亚。
-
rawurldecode — 對已編碼的 URL 字符串進行解碼
rawurldecode() 不會把加號('+')解碼為空格,而 urldecode() 可以先馆。