Вопросительный знак на имя файла с помощью 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 

Когда на моем сервере я делаю, я получаю:

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

Нет ничего плохого в файле, когда я удаляю? Я могу получить его как обычно и открыть его. Что это? И как я могу это сделать, чтобы он не был добавлен в конце?

Related of "Вопросительный знак на имя файла с помощью fopen"

Строка, которую вы используете, чтобы назвать файл, имеет символ непечатаемого в конце, и ls сообщает вам, что там что-то есть, даже если вы обычно не сможете его увидеть. Разделите символ из строки перед ее использованием.