2016-05-17 9 views
1

fopenを使用してファイルを保存できません。何らかの理由で、保存されたファイルの最後に疑問符が付きます。fopenを使用したファイル名の疑問符

リモートサーバーからファイルのリストを取得して、サーバーにダウンロードしようとしています。 これは仕事をしていません、私のコードの一部です:

$arrlength = count($reports); 
for ($x = 0; $x < $arrlength; ++$x) { 
    $report = $reports[$x]; 
    $thefilepath = returnfilename($report); 
    echo 'the filepath : '.$thefilepath; 
    echo '<br>'; 
    $thefilename = basename($thefilepath).PHP_EOL; 
    echo 'the filename : '.$thefilename; 
    echo '<br>'; 
    $localfile = 'incoming/'.$thefilename; 
    echo 'local file to save : '.$localfile; 
    echo '<br>'; 
    curl_setopt($ch, CURLOPT_URL, $thefilepath); 
    $out = curl_exec($ch); 
    $fp = fopen($localfile, 'w'); 
    fwrite($fp, $out); 
    fclose($fp); 
} 

このスクリプトは、(私は実際のアドレスを隠されてきた - スペースなどを保持)次の値を返します。

the filepath : https://example.com.com/xxx/xxx.xlsx 
the filename : xxx.xlsx 
local file to save : incoming/xxx.xlsx 

私の上サーバー私は私が得るlsを行います:

-rw-r--r-- 1 www-data www-data 29408 May 17 23:01 xxx.xlsx? 

私は削除時にファイルに間違いはありません?私はそれを通常通りに取り出して開くことができます。 これはなんですか?そして、どうすればそれを行うことができ、最終的には追加されませんか?

+0

ランダムな文字をGoogleに貼り付けると、それがどんな種類の文字であるかがわかるはずです。私はこの問題が本当に面倒です。 – Jek

答えて

4

ファイルに名前を付けるために使用している文字列が最後に非印刷可能な文字を持っている、とls何かは、あなたが正常にそれを見ることができないだろうしても、そこにあることを語っています。それを使用する前に文字列から文字を取り除く。