PHP Conference Japan 2024

curl_escape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_escape对给定的字符串进行URL编码

描述

curl_escape(CurlHandle $handle, string $string): string|false

此函数根据» RFC 3986对给定的字符串进行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);
?>

参见

添加注释

用户贡献的注释 3 条注释

Franois
10年前
此函数与rawurlencode()严格等效。

它内部使用libcurl中的curl_easy_escape(),其文档说明:“此函数将给定的输入字符串转换为URL编码字符串(……)。所有不是a-z、A-Z、0-9、-、.、_或~的输入字符都将转换为其“URL转义”版本(%NN,其中NN是两位十六进制数)。
sam dot tyurenkov at gmail dot com
4年前
请有人添加一个转义参数之间与符号的示例。

例如,使用curl处理此URL的正确方法是什么
https://example.com/?p1=1&p2=2&p3=3

这并不明显,需要解释。
Nico
10年前
此函数与urlencode()有什么区别?
To Top