PHP 手册
后退 |  | 前进

# urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- 编码 URL 字符串

## 描述

string urlencode ( string str )

返回字符串，此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号（%）后跟两位十六进制数，空格则编码为加号（+）。此编码与 WWW 表单 POST 数据的编码方式是一样的，同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因，此编码在将空格编码为加号（+）方面与 RFC1738 编码（参见 rawurlencode()）不同。此函数便于将字符串编码并将其用于 URL 的请求部分，同时它还便于将变量传递给下一页：

例子 1. urlencode() 示例

`<?php echo '<a href="mycgi?foo=', urlencode($userinput), '">'; ?>`

注意：小心与 HTML 实体相匹配的变量。像 &amp、&copy 和 &pound 都将被浏览器解析，并使用实际实体替代所期待的变量名。这是明显的混乱，W3C 已经告诫人们好几年了。参考地址：http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP 通过 arg_separator .ini 指令，支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 &amp; 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &，而仅使用 htmlentities(urlencode($data)) 对你的 URL 进行编码。

例子 2. urlencode() 与 htmlentities() 示例

`<?php echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">'; ?>`

参见 urldecode()、htmlentities()、rawurldecode() 与 rawurlencode()。

后退 | 起点 | 前进
urldecode | 上一级 | Variable 变量函数