Я ищу (правильный) способ чтения и записи в текстовый файл linux с javascript, jQuery и php.В частности, я хочу взять значение (#taFile) с помощью jQuery ($ ("# taFile"). Val ();) и $ .post его в скрипт php, который, в свою очередь, записывает опубликованное значение в текстfile.
Хотя мой код в основном работает, я наткнулся на загадку: при получении значения textarea и $ .posting, все специальные символы теряются.В частности, 1) все специальные символы теряются, 2) новые строки преобразуются в пробелы и 3) все символы после определенных специальных символов (я заметил, что это произошло с #) теряются.
Этовсе еще черновики сценария, однако я очень открыт для любых улучшений и предложений!
Javascript:
$(document).ready(function() {
$("input:button").button();
$("#tabs").tabs();
$("#tabs").tabs({
select: function(event, ui) { // When a tab is selected
file = ui.panel.id;
console.log("js: file: "+file);
if (file == "items" || file == "groups" || file == "whitelist" || file == "users"){ // if file is valid
$("#taFile").remove(); // Remove any old textareas
$("#"+file).html(''); // Add a new textarea
$.post("/php/getFile.php?action=read&file="+file, function(data){ // Post with the current file
$("#taFile").val(data); // Put file into textarea
});
}
}
});
$("#btnSubmit").click(function() {
var newcfg = $("#taFile").val();
alert(newcfg); // This shows that newcfg preserves the exact value of the textarea
console.log(newcfg); // As does this.
$.post("/php/getFile.php?action=write&file="+file+"&newcfg="+newcfg); // This shows new lines (\n ?) as " " (a space) and removes all special characters (! , # ; : etc)
});
});
PHP:
$file = $_REQUEST['file'];
$newcfg = $_REQUEST['newcfg'];
$action = $_REQUEST['action'];
$user = 'public';
$config = "/home/$user/mc/$file.txt";
if ($action == "read"){
$oldcfg = file_get_contents($config);
echo $oldcfg;
} else if ($action == "write") { #if writing
$fh = fopen($config, 'w') or die("Cant write to file"); #open file
fwrite($fh, $newcfg); #write file
fclose($fh); #close file
}
Мне пришлось удалитьтеги php, поскольку они заставили реальный код PHP не появляться.Не то чтобы некоторые сценарии предназначались для чтения файла в первую очередь при смене вкладок.Это все работает отлично.
Спасибо!