URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5864
[ Назад ]

Исходное сообщение
"php коверкает файлы"

Отправлено fa , 31-Окт-06 15:03 
Всем привет.
Вот такая проблема. Некоторый файл загружается в textarea, а потом формой в неизменном виде отсылается назад на сервер и там сохраняется. Сравниваю что было и что стало diff-ом. Говорит, что каждая строчка отличается. Как загрузить его обратно на сервер в неизменном виде.
Зараннее спасибо.

<?
  $file="file.txt";
  if ($_POST['save']=='1') {
    $handle=fopen($file,'w');
    $data=fwrite($handle,$_POST['data']);
    fclose($handle);
  }
  $handle=fopen($file,'r');
  $data=fread($handle,filesize($file));
  fclose($handle);
?>
  <html><body><form action=<? echo $_SERVER['PHP_SELF']; ?> method=POST><textarea name=data><? echo $data; ?></textarea><input type=hidden name=save value=1><br><input type=s
ubmit value=Ok></form></body></html>


Содержание

Сообщения в этом обсуждении
"php коверкает файлы"
Отправлено JetSnaiL , 01-Ноя-06 14:43 
Отличается чем? Результат сравнения в студию, если можно. Кстати, почему нет блокировки на файл? Туда можно будет записать одновременно, и получится каша.


"php коверкает файлы"
Отправлено fa , 02-Ноя-06 13:00 
>Отличается чем? Результат сравнения в студию, если можно. Кстати, почему нет блокировки
>на файл? Туда можно будет записать одновременно, и получится каша.

Коверкает каждую строчку. Видимо, какой-то непечатный символ. Но как это побороть - понятия не имею.

root@dima-laptop# diff file.txt file2.txt
1,4c1,4
< 1234
< qwer
< asdf
< zxcv
---
> 1234
> qwer
> asdf
> zxcv

file2.txt - это file.txt, до того, как его модифицировал вышеприведенный скрипт


"php коверкает файлы"
Отправлено pup , 02-Ноя-06 16:14 
>root@dima-laptop# diff file.txt file2.txt
>1,4c1,4
>< 1234
>< qwer
>< asdf
>< zxcv
>---
>> 1234
>> qwer
>> asdf
>> zxcv
>
>file2.txt - это file.txt, до того, как его модифицировал вышеприведенный скрипт

посмотри на файлики в hex-редакторе. есть у меня предположение что в одном из них используется \n\r в качестве символа новой строки, а в другом, согласно UnixWay, -- просто \n.