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 handleCurlHandle クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、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($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_exec($ch);
curl_close($ch);
?>

参考

add a note add a note

User Contributed Notes 3 notes

up
4
Franois
6 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)."
up
0
sam dot tyurenkov at gmail dot com
10 months 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.
up
-2
Nico
6 years ago
What is difference between this function and urlencode()?
To Top