2016-10-16 3 views
-1

Я новичок, и я просто делаю что-то для удовольствия. Кто-нибудь знает, как я могу добавить данные в локальный текстовый файл на стороне сервера? Я предпочел бы использовать JavaScript, но я могу использовать PHP, и было бы идеально, если бы я мог вызвать функцию так:Добавить текст в локальный текстовый файл с помощью JavaScript/PHP?

appendData(data, fileName); 

Спасибо!

+0

W Ты что, пробовал? Как запустить код на стороне сервера? – Dekel

+0

http://php.net/fopen http://php.net/fwrite – ceejayoz

ответ

0

Если вы используете PHP-сервер, вы можете сделать что-то подобное в PHP:

file_put_contents("/path/to/file", file_get_contents("/path/to/file") . $data); 

Вы не можете сделать это с помощью браузера JavaScript напрямую. Это связано с тем, что браузер javascript работает в браузере, а не на сервере.

Если вы используете сервер node.js (который является сервером JavaScript и отличается от JavaScript, запущенного в браузере), вы можете сделать что-то вроде ниже. См. this ответ. .

var fs = require("fs"); // Get file system 
fs.appendFile('message.txt', 'data to append', function (err) { 

}); 
1

Если файл огромен, вы не можете пойти маршрут file_get_contents (так как он должен прочитать весь файл, а затем записать его Вы можете сделать:

$fp = fopen($filename,"a"); 
fwrite($fp,$data); 

«а» позиционирует указатель в конце для добавления Если вы не против обмана:..

`echo $data >> $filename`; 

, которая бежит в оболочке

+0

И если '$ data' имеет строку' >> '? – Niloct

+0

метод оболочки может быть проблематичным, если возможно использование альфа-символов. Вы можете заключить в кавычки; но у вас все еще могут быть проблемы с $ или [] или другими специальными символами оболочки. – Danial

+0

Обратный слеш перед этими специальными символами будет работать. – Niloct