您现在的位置是:首页 > 其他

李清波 2015-11-24 其他 1862 复制当前网址

urlencode

urlencode

(PHP 4, PHP 5)

urlencode — 编码 URL 字符串

说明

string urlencode    ( string $str   )

此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。

参数

  • str

  • 要编码的字符串。

返回值

返回字符串,此字符串中除了    -_.    之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW    表单 POST 数据的编码方式是一样的,同时与    application/x-www-form-urlencoded    的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与    RFC1738 编码(参见     rawurlencode())不同。

范例

Example #1  urlencode() 例子

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


Example #2  urlencode() 与  htmlentities() 例子

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>


注释

Note:

注意:小心与 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()    或  htmlspecialchars() 对你的 URL 进行编码。

参见

  • urldecode() - 解码已编码的 URL 字符串

  • htmlentities() - Convert all applicable characters to HTML entities

  • rawurlencode() - 按照 RFC 1738 对 URL 进行编码

  • rawurldecode() - 对已编码的 URL 字符串进行解码

  • » RFC 3986


文章来源:http://liqingbo.com/blog-1250.html

评论