0

これは共同でxmlrpcの質問です。.wavファイルから入ってくるデータの文字列があります。ファイルを読み込んだら、file_get_contents()その情報をxmlrpcサーバー(作成しなかった)に送信する必要があります。base64の.wavオーディオデータを取得します。を使用してみbase64_encode()ましたが、「文字列」型も返されます。このphpガイドが役立つかもしれないと思いましたxmlrpc_set_typeが、これはbase64でエンコードされた文字列を含む配列を含むオブジェクトを返します。

使用している文字列をbase64型として設定する方法はありますか?

これは私がこれまでに持っているものであり、それはエラーを作成しています:

$data = base64_encode(file_get_contents('myfile.wav', NULL, NULL, 44));
$request = xmlrpc_encode_request('service',array('AudioData'=>$data));

私もこれを試しました:

$data = file_get_contents('myfile.wav', NULL, NULL, 44);
$request = xmlrpc_encode_request('service',array('AudioData'=>xmlrpc_set_type($data, 'base64')));

これは私が得る応答です:

["faultCode"]=> int(0) ["faultString"]=> string(155) "request contains string value where base64 expected

編集:

base64はタイプではないことを認識しています。明らかに、私が使用しているサーバーは、base64でエンコードされたデータの文字列を除いてはいないので、私の質問はそれをどのように機能させるかです。

4

1 に答える 1

0

このxmlrpc_set_type関数を使用して、XML-RPC要求で値を特定のタイプ(base64または日時)として「マーク」することができます。操作が成功したかどうかを示すブール値を返します。

基本的に、値はその型と一緒に標準のPHPクラスオブジェクトにラップされ、変数xmlrpc_set_typeは元の生の値の代わりにこのオブジェクトを保持するための参照として渡されます。

を呼び出すときは、値型を宣言するためにxmlrpc_encode_request以前に参照として渡されたのと同じ変数を、2番目の引数として渡された配列xmlrpc_set_typeに埋め込む必要があります。$params

これらの関数はまだ実験的なものと見なされており、注意して使用する必要があることに注意してください。

例:

<?php

$method = 'app.service';

// $value contains raw content
xmlrpc_set_type($value, 'base64'); 

// $request contains base64 encoded content
$request = xmlrpc_encode_request($method, array($value); 
于 2012-09-08T17:37:10.110 に答える