| andrey_p |
20.11.2008 16:52 |
Глюки с загрузкой редактированием сохранением текста
я подгружаю текст следующим методом:
Код:
Код AS3:
private function buttonEditInClick(e:Event){
var phpReq:URLRequest;
phpReq=new URLRequest("load_in.php"+ "?"+ new Date().time);
phpReq.method=URLRequestMethod.POST;
var sndVars:URLVariables=new URLVariables;
sndVars.path = getInPath();
trace(sndVars.path);
phpReq.data=sndVars;
var phpLoader:URLLoader=new URLLoader;
phpLoader.addEventListener(Event.COMPLETE, onLoadInResponse);
phpLoader.load(phpReq);
}
//php load_in.php
PHP код:
...$ret = file_get_contents($remotefile);echo($ret);...
//AS3
Код AS3:
private function onLoadInResponse(e:Event){
if (e.target.data){
var s: String = String(e.target.data);
_popupTextIn.addText(s);
addChild(_popupTextIn);
}
}
затем сохраняю:
Код:
Код AS3:
infile = _popupTextIn._text.text;
....
private function SaveInFile() {
var phpReq:URLRequest;
phpReq=new URLRequest("save_in.php"+ "?"+ new Date().time);
phpReq.method=URLRequestMethod.POST;
var sndVars:URLVariables=new URLVariables;
sndVars.infile = infile;
sndVars.user_folder = user_folder;
phpReq.data=sndVars;
var phpLoader:URLLoader=new URLLoader;
phpLoader.addEventListener(Event.COMPLETE, onSaveInResponse);
try {
phpLoader.load(phpReq);
} catch (error:Error) {
trace("Unable to load requested document");
}
}
PHP код:
$str=$_POST["infile"];$ret = file_put_contents($newfolder, $str);
в результате после сохранения (в зависимости от редактора) у меня показывает текст во всю строку (т.е. без переноса). Я допускаю, что это может быть из-за сохранения текста без переносов (переносы другими символами созранились?).
Сохранение с encodeURI()(AS3) и urldecode()(PHP) дает еще более странный результат (((
вопрос простой: Как сохранить то что в TextArea в точности без каких либо его искажений? Может мой подход содержит ошибки?
если кто может помочь - спасибо!
(собственно при просмотре данного поста, увидел, что PHP код сохранился с аналогичным багом (т.е. все в одноу строку :)))
ЗЫ Текстовый фай который я подгружаю и сохраняю имеет не только буквы а весть полный набор знаков, поэтому идентичность и так критична!
Добавлено через 2 часа 29 минут
уже в который раз сам себе отвечаю ! :)
После мучительных исследований, понял, что нужно вписать пхп строку:
PHP код:
$str = str_replace(chr(13),chr(10),$str);
связано с тем что видимо где-то эти строки подменяются, при загрузке в TextArea возможно.
|