curl_escape
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
curl_escape — 使用 URL 编码给定的字符串
参数
handle由 curl_init() 返回的 cURL 句柄。
string- 
     
需要编码的字符串。
 
返回值
   返回编码后的字符串 或者在失败时返回 false。
  
更新日志
| 版本 | 说明 | 
|---|---|
| 8.0.0 | 
  handle 现在接受 CurlHandle
  实例;之前接受 resource。
  | 
示例
示例 #1 curl_escape() 示例
<?php
// 创建 curl 句柄
$ch = curl_init();
// 把编码后的字符串当做 GET 参数
$location = curl_escape($ch, 'Hofbräuhaus / München');
// 结果: Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen
// 用编码好的字符串组装 URL
$url = "http://example.com/add_location.php?location={$location}";
// 结果:http://example.com/add_location.php?location=Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen
// 发送 HTTP 请求并关闭句柄
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
?>参见
- curl_unescape() - 解码指定 URL 编码的字符串
 - urlencode() - 编码 URL 字符串
 - rawurlencode() - 按照 RFC 3986 对 URL 进行编码
 - » RFC 3986
 
  +添加备注
  
用户贡献的备注 3 notes
  
  
  Franois ¶
  
 
  10 years ago
  This function is strictly equivalent to rawurlencode().
Internally it uses curl_easy_escape() from libcurl, whose doc says: "This function converts the given input string to an URL encoded string (…). All input characters that are not a-z, A-Z, 0-9, '-', '.', '_' or '~' are converted to their "URL escaped" version (%NN where NN is a two-digit hexadecimal number)."  
  
  sam dot tyurenkov at gmail dot com ¶
  
 
  4 years ago
  Please someone add an example for escaping ampersands between parameters. 
E.g. what is the correct approach for using this URL with curl:
https://example.com/?p1=1&p2=2&p3=3
This is not obvious, and needs explanation.