0

私は次のコードを持っています:

$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.mydomain.com/test.php');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS,"First Name=Jhon&Last Name=bt");
curl_exec ($c);
curl_close ($c);

私の問題は、このコードのスペースにあります:

"First Name=Jhon&Last Name=bt"

次のコードを試しました:

$test=rawurlencode("First Name=Jhon&Last Name=bt");

$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.mydomain.com/test.php');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS,$test);
curl_exec ($c);
curl_close ($c);

また、私は試しました

$first_name=rawurlencode("名");

$last_name=rawurlencode("姓");

$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.mydomain.com/test.php');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS,"$first_name=Jhon&$last_name=bt");
curl_exec ($c);
curl_close ($c);

私のエラーは何ですか?動かない。変数名「First Name」と「Last Name」を付けて送信する必要があります。ご協力いただきありがとうございます。

4

1 に答える 1

1

スタンドアロンのカール エンコーディング。

http://curl.haxx.se/docs/manpage.html#--data-urlencode

PHP の URL コーディング

最初に値をエンコードしてから、ポスト フィールド オプションとして curl に渡します。

$encodedValue = urlEncode("this has spaces - oh no!");
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.mydomain.com/test.php');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS , "value=" . $encodedValue);
curl_exec ($c);
curl_close ($c);

または、キーにスペースが含まれている場合:

 $encodedKey = urlEncode("first name");
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, 'http://www.mydomain.com/test.php');
    curl_setopt($c, CURLOPT_POST, true);
    curl_setopt($c, CURLOPT_POSTFIELDS , $encodedKey . "=Bobby");
    curl_exec ($c);
    curl_close ($c)
于 2012-04-20T13:02:36.700 に答える