curlでRAWデータをPOSTするにはどうしたらいいんでしょうか?

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "<xml>25kb分");

これでやるとローカルでは問題ないんですが共有サーバーだと90MBとかの異常なメモリ割り当てが発生して
エラーになってしまいます。(本来は array('key' => 'value') 形式で指定するので間違った使い方なのかも)
試しに
curl_setopt($ch, CURLOPT_POSTFIELDS, array('key' => "25kb分の文字列"));
としたところ送信はできますが、相手が要求するフォーマットがxmlでkey=value形式ではないのです。

この問題はHTTP/Request.phpのaddRawPostData()を用いて送信し解決できましたが
後学のためcurlでPOSTする方法教えてもらえないでしょうか