2014-08-27 2 views
-1

Я использую данные urldecode для записи содержимого в текстовый файл, но в этом файле все содержимое отображается вместе (не согласовано в ожидании) в блокноте Windows (в текстовом поле Windows это правильно), также, когда я открываю его в Ubuntu, содержимое идет правильно (у моего содержимого есть ключ и пробелы некоторые специальные символы тоже).Проблема с записью текстового файла в php

$attachment_file = fopen(Yii::app()->basePath.'/../uploads/attachment'.$user_id.'.txt', "a+") or die("Unable to open file!"); 

$content   = urldecode($note_data["note_data"]); 

fwrite($attachment_file,$content); 
fclose($attachment_file); 

Для быстрого исправления я сделал

$content = str_replace("\n","\r\n",$content); 

, но я хочу знать, есть ли другие способы сделать это.

+1

потому что пробелы заменены на% 20 почему, черт возьми, вы хотите использовать urlencode для этого? – Robert

+0

Роберт данные urlencode, поступающие с Iphone и Ipad, на бэкэнд, здесь мы используем yii для управления данными и выполнения некоторых других вещей. – Naveenbos

+0

поэтому, если слова разделены, у вас может возникнуть проблема с окончанием строки, которая отличается в Unix-системах, и Windows пытается сделать что-то вроде 'str_replace (" \ n "," \ r \ n ", $ content);' для замены unix EOL для окна EOL. – Robert

ответ

1

Если вы используете Linux для создания файла, вы должны вручную добавить это. Если вы используете Windows, вы можете попробовать str_replace («\ n», PHP_EOL, $ content).

Я не понимаю, почему вы делаете urldecode. Возможно, вы должны использовать что-то вроде utf8_decode, если у вас есть данные в формате utf-8.

+0

Сервер принимает данные в json закодированном формате, с лицевого конца ios они отправляют данные в формат urlencode, я не знаком с разработкой ios, серверные данные, получающие данные, содержат пробелы и вводимые символы и специальные символы – Naveenbos

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