0

ローカル ファイル名を使用すると、ファイル名は適切にコピーされますが、ローカル ファイル名を空のままにしておくと、ファイルの内容を受け取ることになります。

コード例:

$stat = $sftp->get('xmlfile.cml','xmlfile.xml'); print "$stat
";

(これはうまくいきます)

$xmlcontent = $sftp->get('cp1301080801_status.xml'); print "ファイルの内容 = $xmlcontent<>";

*(これは、コンテンツではなく、ファイルの統計のように見えるものを出力します。これは、日付 (ファイルの modofoed タイムスタンプであり、その後にいくつかの数字と、数字で約 10 回繰り返される Web サーバーの名前が続きます) で始まります。その後、毎回増加します-ポート番号やバイトオフセットなど)*

転送後にローカル ファイルを fopen する必要がなければ、作業が簡単になります。ここで何が起こっているのか誰にも分かりますか?

4

1 に答える 1

0

ログのコピーを投稿できますか? それらを取得する方法の例を次に示します。

http://phpseclib.sourceforge.net/ssh/examples.html#logging

define() と $ssh->getLog() のものに注意してください。

あなたが抱えている特定の問題については... print "$stat" は何をしますか? 「1」と表示されるはずです。

また、fwiw、あなたの例では 2 つの異なるファイルを開いています。私の最善の推測では、あなたは同じファイルを開いていると考えており、実際には異なるはずのコンテンツが同じであることを期待しており、 $sftp->get の両方で得ているもの() は、実際には正しいです。

ログは確実に教えてくれます。

于 2013-01-11T14:30:31.537 に答える