2016-11-22 10 views
0

У меня есть файл журнала, который дает правильное форматирование в ОС Linux, но в Windows он теряет форматирование. Невозможно прочитать новые символы строки. Я могу только вносить изменения во время чтения/загрузки файла. Пожалуйста, предложите решениеКак добавить/r/n во время чтения файла в php

if(isset($_REQUEST['download'])) { 
    $file = $dir . "/" . basename($_REQUEST['download']); 
    if (file_exists($file)) { 
     ob_start(); 
     header('Content-Description: File Transfer'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Disposition: attachment; filename='.basename($file)); 
     header('Content-Transfer-Encoding: binary'); 
     header("Pragma: no-cache"); 
     header("Expires: 0"); 
     header('Content-Length: ' . filesize($file)); 
     ob_clean(); 
     flush(); 
     readfile($file); 
     exit; 
    } 
} 
+0

'\ r \ n' не'/r/n'. – v7d8dpo4

ответ

0

Вместо редактирования файла журнала я бы предложил получить другой редактор, чтобы посмотреть на файл. Большинство редакторов (sublime, atom, notepad ++, vscode) отлично справляются с окончанием строк в стиле Linux в Windows.

Если это невозможно, просто использовать регулярное выражение для замены окончаний строк:

Заменить

readfile($file); 

с

$str = file_get_contents($file); 
$str = preg_replace('/\r\n|\r|\n/', "\r\n", $str); 
echo $str; 

займет немного больше памяти, так как она должна сохраните содержимое файла в памяти.

+0

спасибо за комментарий, но его другая команда, которая использует Блокнот, и мы не можем заставить их изменить общую практику. – NGupta

+0

@NGupta см. Мое редактирование – Sven

+0

спасибо, я проверю и обновлю. – NGupta

 Смежные вопросы

  • Нет связанных вопросов^_^