1
$description = "some test data and url";
$description .="http://www.mydata.com?test=1&user=4&destination=645&source=stackoverflow";

curl_setopt($sch, CURLOPT_URL, "myserverurl");
curl_setopt($sch, CURLOPT_HEADER, 0);             
curl_setopt($sch, CURLOPT_POST, true);
curl_setopt($sch, CURLOPT_RETURNTRANSFER , 1);
curl_setopt($sch, CURLOPT_POSTFIELDS, "orgid=$orgid&description=$description&external=1");
curl_setopt ($sch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($sch, CURLOPT_SSL_VERIFYPEER, 0); 

サーバー(myserverurl)をチェックすると。

次のような説明フィールドが表示されます

"いくつかのテスト データと URL http://www.mydata.com?test=1 ".

「&」の後の説明を失いました

はい、curl で送信する前に URL をエンコードできますが、サードパーティの API サーバーで URL を再度デコードするアクセス権がありません。

4

4 に答える 4

1

送信している各パラメーターurlencodeを取得した場合はどうなりますか?

反対側でのデコードについて心配する必要はありません。これは、GET / POST を介してデータを送信する標準的な方法です。

何かのようなもの :

curl_setopt($sch, CURLOPT_POSTFIELDS, 
    "orgid=" . urlencode($orgid) 
    . "&description=" . urlencode($description) 
    . "&external=1"
);

これがうまくいかない場合は、rawurlencode?を試してください。(私の記憶が正しければ、スペースには違いがあります)

于 2009-07-22T06:47:14.570 に答える
0

簡単。入力後、現在の URL を簡単に取得できます。

だから入ったら

http://www.mydata.com?test=1&user=4&destination=645&source=stackoverflow

(それmydata.comがあなたのサーバーだと思います)、非常に簡単にエコーできます:

$url = str_replace("?","",$_SERVER['REQUEST_URI']);
echo $url;

そして、上記のエコーは次のようになります。

test=1&user=4&destination=645&source=stackoverflow

その後、単純に文字列全体をデータベースに保存するか、個々の変数 (test、user、destination、source) を で保存するか、変数either $_SERVER['test']の数が異なる場合は&文字ごとに展開して動的に保存することができます。

于 2012-04-23T10:01:52.807 に答える