1

このスクリプトを編集してjqueryからリクエストを受け取り、スクリプトが返す値を返すことができるようにする方法にかなりこだわっていますか?何か助けていただければ幸いです。

これを使用して、ファイルシステムからxmlファイルとURLを渡し、期待するリターンを得ることができますが、wsdlサービスのプロキシとして使用できるようにしたいと考えています。

[編集]環境の変化により、以下のスクリプトを使用して、xmlを渡しているwsdlサービスからのxmlリターンを返したいと思います。コマンドラインから実行すると正常に機能します。スクリプトで投稿を受け入れてから、サービス呼び出しからxmlreturnを返す方法がわかりません。

コマンドラインから次のようにスクリプトを使用しています。

php file.php theurl <test.xml

^^これで、フロントエンドに戻したいxmlが返されます

<?php
ini_set('display_errors', "1");

$url= $argv[1];

echo "url\n$url\n";

preg_match("/https?:\/\/([^\/]*)(.*)/", $url, $matches);
$host=$matches[1];
$request=$matches[2];

$mxml=fread(STDIN,65536);
$yt =curl_init();
$header =   "POST $request  HTTP/1.0\r\n";
$header .=  "Host: $host\r\n";
$header .=  "SoapAction:";
$header .=  "Content-Type: text/xml\r\n";
$header .=  "Content-Length: ".strlen($mxml)."\r\n";
$header .=  "Content-Transfer-Encoding: text\r\n";
$header .=  "Connection-Close: close\r\n\r\n";

echo "header\n$header\n";

$header .=  $mxml;

curl_setopt($yt, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($yt, CURLOPT_URL, $url);
curl_setopt($yt, CURLOPT_CUSTOMREQUEST, $header);
curl_setopt($yt, CURLOPT_RETURNTRANSFER, true);

$rxml=curl_exec($yt);
echo "sent\n$mxml\n";
echo "received\n$rxml\n";

echo curl_error($yt);
?>
4

2 に答える 2

1

それを話しました。申し訳ありませんが、回答を投稿するのを忘れました。うまくいけば、他の誰かを助けてください:

<?php
$url = 'http://myURL';
$xmlpost = file_get_contents('php://input');

$header =   "POST $url  HTTP/1.0\r\n";
$header .=  "Host: myHOST\r\n";
$header .=  "SoapAction: ''";

$ch = curl_init();

//Set the URL
curl_setopt($ch, CURLOPT_URL, $url);
//Enable POST data
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlpost);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);

//curl_exec automatically writes the data returned
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
于 2012-10-27T17:37:34.463 に答える
0
$.post('path/to/php/', function(data)
{
    $('body').append('<div id="outputs"></div>');
    $('#outputs').html($(data).find('name_of_xml_node').text());
}, 'xml');

多分..少なくともいくつかのサンプルデータがなければ、これを保証することはできません..また、これは、実際にxmlデータの取得に基づくのではなく、より多くの例で動作します。

また、PHPがXMLを出力するのは、XMLのフォーマットを壊す可能性のある余分な文字列などを追加しないようにする必要があります。

于 2012-08-06T18:50:28.973 に答える