-1

このコード「$server = 'LOCALHOST:9000';」を使用して、サーバーからデータを取得しました。

$headers = array(
"Content-type: text/xml"
,"Content-length: ".strlen($requestXML)
,"Connection: close"
);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);



if(curl_errno($ch)){
    print curl_error($ch);
    echo "  something went wrong..... try later";
}else{
echo " request accepted";
    print $data;
    curl_close($ch);
}`

今、私は逆をしなければなりません.phpを使ってサーバーにデータを送信する方法は? curl メソッドが唯一の方法であるか、同じことを行う他の方法があります。例を挙げてください。

4

1 に答える 1

0

cURL を使用した送受信はまったく同じです。cURL は、特定の URL にデータを送信し、場合によっては応答を受信することに基づいています。ユーザーを取得してユーザーを送信する簡単な例を見てみましょう。

ユーザーを取得することは

$data = array(
  'user_id' => 1
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.site.com/getUser.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
  • getUser.php は、ユーザーを検索して見つかったデータを返すだけです。
  • $response には、ユーザーのデータが含まれる可能性があり、名前を含む単なるテキスト応答である可能性があります。シリアル化された PHP 配列、完全なユーザー プロファイルを含む XML 応答など。

データの挿入/送信

$data = array(
  'user_name' => 'Joshua',
  'user_email' => 'my@email.com'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.site.com/addUser.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
  • addUser.php はフィールドの検証を実行し、検証された場合はデータベースにユーザーを挿入します
  • この場合の $response にはユーザーデータが含まれていませんが (可能性はあります)、$response には結果が含まれている可能性が高くなります。テキスト応答、okjson/xml 応答、またはおそらく「200 OK」ヘッダー応答

それは基本的にすべて同じです。cURL を使用したデータの取得/送信に違いはありません。すべてはリクエストの送信に基づいており、ほとんどの場合、結果に対して何らかの処理を行います。

于 2013-03-30T13:01:24.083 に答える