2009-06-02 4 views
13

にポストを経由してXMLファイルを受信し、応答を送信....私はPOSTを経由してXMLファイルを受け入れることができますPHPスクリプトを探していますPHP

誰もがこれを行うことができます任意のコードを持っていますか?

これまでの唯一のコードはこれですが、レスポンスやXML文字が正しく保存されていないため正しい方向に進んでいるかどうかはわかりません。何か案は?

<?php 

if ($_SERVER['REQUEST_METHOD'] === 'POST'){ 
    $postText = file_get_contents('php://input'); 
} 

$datetime=date('ymdHis'); 
$xmlfile = "myfile" . $datetime . ".xml"; 
$FileHandle = fopen($xmlfile, 'w') or die("can't open file"); 
fwrite($FileHandle, $postText); 
fclose($FileHandle); 

?> 

私のファイルはすべて空です...内容は書き込まれていません。彼らは創造されています。

//source html 
<form action="quicktest.php" method="post" mimetype="text/xml" enctype="text/xml" name="form1"> 
<input type="file" name="xmlfile"> 
<br> 

<input type="submit" name="Submit" value="Submit"> 

</form> 

//destination php 

$file = $_POST['FILES']['xmlfile']; 

$fileContents= file_get_contents($file['tmp_name']); 

$datetime=date('ymdHis'); 
$xmlfile="myfile" . $datetime . ".xml"; 
$FileHandle=fopen($xmlfile, 'w') or die("can't open file"); 

fwrite($FileHandle, $postText); 
fclose($FileHandle); 

私は、ファイルをアップロードする話ではありません。誰かが、HTTP接続を介してXMLファイルを定期的に送信したいと考えています。

自分のサーバーに自分の投稿を受け入れ、自分のサーバーにファイルを保存して応答を送って、承認済みまたは受け入れ済みの応答を送信するスクリプトが必要です。

+0

"応答"は、スクリプトの実行中に "エコー"または出力するものです。 –

答えて

-1

PHPを使用してXMLファイルをアップロードすることについてお話ししていますか?このリンクをw3schoolsからチェックしてください。リンクはファイルのアップロードについて語ります。 XMLファイルのみをアップロードするようにカスタマイズすることができます。

6

あなたの方法は結構です、それのルックスによって、いくつかのメモで、それを行うための適切な方法:

  • あなたはPHP5を持っている場合は、あなたがfile_get_contentsの逆の操作としてfile_put_contentsを使用することができ、かつfopen/fwrite/fclose全体を避けてください。ただし、
  • 受け入れようとしているXML POST本体が大きい場合、あなたのコードが問題に遭遇する可能性があります。最初はボディ全体をメモリにロードし、それを1つの大きなチャンクとして書き出します。それは小さな記事の罰金ですが、filesizesはメガバイトに傾向がある場合、それはあなたのメモリ使用量は、例えば、8キロバイトのために超えることはありませんので、より良い、fopen/fread/fwrite/fcloseで完全にそれを行うだろう:

    $inp = fopen("php://input"); 
    $outp = fopen("xmlfile" . date("YmdHis") . ".xml", "w"); 
    
    while (!feof($inp)) { 
        $buffer = fread($inp, 8192); 
        fwrite($outp, $buffer); 
    } 
    
    fclose($inp); 
    fclose($outp); 
    
  • あなたのファイル名の生成方法は、に実行することがありファイルが1秒間に1よりも定期的に(たとえば、複数のソースから投稿されたときなどに)投稿された場​​合の名前のコリジョン。しかし、これは単なるコード例だと思うし、あなたはすでにそれを認識しています。

関連する問題