Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 19

Как лучше перезаписать файл

08.11.2017, 16:10. Показов 2184. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Вопрос в принципе простой, что лучше и быстрее будет работать если делать запись и перезапись двумя способами:
1. Создаем файл заново файл (w+) - делаем запись - закрываем файл.
2. Открываем файл для чтения (r+) - обнуляем данные до нуля (ftruncate()) - делаем запись - закрываем файл.

Вот и вопрос возник, а что проще для сервера и быстрее, обнулять или создавать заново.

Размер данных примерно 900 байт, доступ к файлу у каждого к своему, то есть не будет очереди ожидания. Интервал обращений может быть минимально раз в секунду, но это редко, в основном раз в 5-15 сек и на протяжении 15-20 минут. Далее к файлу обращений не будет.

За ранее извиняюсь, если сумбурно описал действия
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2017, 16:10
Ответы с готовыми решениями:

Как через ajax и php перезаписать html файл
Задача такая. Взять body с текущей страницы и записать в другой tml файл. Можно с перезагрузкой, можно без нее. Главное реализовать....

Заменить в XML файле некоторое значение и перезаписать файл.
Подскажите пожалуйста как можно произвести замену в XML файле и записать его с изменением... Пример file.xml: <root> ...

Перезаписать файл, оставив в нем только те слова, количество букв в которых меньше пяти
в текстовом файле через пробел записаны слова, нужно перезаписать этот файл, оставив в нем только слова количество букв которых меньше пяти

7
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
08.11.2017, 22:41
Rariot, следуя вашим условиям -
1. флаг w+
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$start = microtime(true);
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque luctus, nisl a commodo ultrices, arcu sem maximus libero, sed iaculis ante urna at urna. Vestibulum eget leo vel ante accumsan aliquam quis et lectus. Vivamus non metus rutrum, efficitur erat sit amet, sagittis enim. Suspendisse potenti. Etiam rhoncus placerat eleifend. Duis a quam lacinia, eleifend tortor vitae, iaculis est. Cras mollis elementum purus, nec vulputate metus semper et.
 
Ut quam erat, aliquam ut imperdiet quis, bibendum sed massa. Duis quis lorem sagittis, accumsan eros id, dictum nulla. Nam mollis iaculis nisl, eu ullamcorper dolor. Mauris ut aliquet enim, imperdiet pellentesque mauris. Sed tellus velit, hendrerit quis diam et, interdum fringilla arcu. Nulla a consectetur elit. Ut maximus mauris elit, ut mattis risus ullamcorper ac. Nulla in felis at nulla sagittis fringilla. Cras non orci consequat, aliquet turpis ut, mattis dui. Ut pellentesque ac erat ut congue. Integer ornare rhoncus dui nec fringilla. Ut eu ante dolor. Quisque eu mattis ante, sed tempor magna. Vivamus ac condimentum odio.
 
Praesent lorem purus, viverra id ornare id, efficitur a metus. Nunc suscipit, sapien et lacinia commodo, ipsum purus tempus leo, eu pretium quam tortor eu erat. Nulla molestie viverra convallis. Nam dignissim pretium tortor, at volutpat erat condimentum vitae. Etiam eu nulla a dui pulvinar dictum at non risus. Cras lorem mauris, facilisis pharetra erat ac, vehicula fermentum ex. Quisque gravida massa a arcu convallis, eu porta justo fermentum. Integer lacinia, ipsum hendrerit accumsan efficitur, mi nibh molestie nunc, sit amet suscipit nibh sapien vitae dui. Donec accumsan nisi sed neque malesuada dignissim. Vivamus fermentum purus et odio vulputate lacinia. Maecenas sollicitudin placerat tortor. Cras ante ex, sodales eget nunc ut, aliquam scelerisque neque.
 
Aliquam eu urna neque. Donec id erat ante. Cras eu erat quis dui tincidunt posuere. Duis lobortis ligula vitae mauris vestibulum rutrum. Proin commodo metus lorem, tristique tincidunt nisi lacinia non. Cras et mi enim. Suspendisse sed libero eleifend, tincidunt lorem dictum, tristique arcu. Suspendisse vel nisl sed est dictum commodo. Donec ut dignissim elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 
Praesent porttitor leo sem, at consectetur eros euismod ac. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quam tortor, vulputate quis erat id, semper finibus neque. Proin luctus metus odio, nec pharetra sem pulvinar posuere. Mauris semper mauris nec dictum consequat. Vivamus elementum accumsan risus, id dignissim justo lacinia consequat. Vivamus ultrices est sit amet turpis euismod, at maximus velit elementum. Duis a nisi at nisi faucibus scelerisque et a tellus. Vestibulum vestibulum augue quis posuere convallis. Sed justo diam, pharetra ut dui a, pellentesque viverra nisl. Mauris vitae enim pellentesque, tincidunt sem nec, varius tortor.";
$fp = fopen("file.txt", "w+");
fwrite($fp, $text);
fclose($fp);
echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.';
?>
Время выполнения скрипта: 0.00099992752075195 сек., иногда 0.0010001659393311 сек.

2. флаг r+
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$start = microtime(true);
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque luctus, nisl a commodo ultrices, arcu sem maximus libero, sed iaculis ante urna at urna. Vestibulum eget leo vel ante accumsan aliquam quis et lectus. Vivamus non metus rutrum, efficitur erat sit amet, sagittis enim. Suspendisse potenti. Etiam rhoncus placerat eleifend. Duis a quam lacinia, eleifend tortor vitae, iaculis est. Cras mollis elementum purus, nec vulputate metus semper et.
 
Ut quam erat, aliquam ut imperdiet quis, bibendum sed massa. Duis quis lorem sagittis, accumsan eros id, dictum nulla. Nam mollis iaculis nisl, eu ullamcorper dolor. Mauris ut aliquet enim, imperdiet pellentesque mauris. Sed tellus velit, hendrerit quis diam et, interdum fringilla arcu. Nulla a consectetur elit. Ut maximus mauris elit, ut mattis risus ullamcorper ac. Nulla in felis at nulla sagittis fringilla. Cras non orci consequat, aliquet turpis ut, mattis dui. Ut pellentesque ac erat ut congue. Integer ornare rhoncus dui nec fringilla. Ut eu ante dolor. Quisque eu mattis ante, sed tempor magna. Vivamus ac condimentum odio.
 
Praesent lorem purus, viverra id ornare id, efficitur a metus. Nunc suscipit, sapien et lacinia commodo, ipsum purus tempus leo, eu pretium quam tortor eu erat. Nulla molestie viverra convallis. Nam dignissim pretium tortor, at volutpat erat condimentum vitae. Etiam eu nulla a dui pulvinar dictum at non risus. Cras lorem mauris, facilisis pharetra erat ac, vehicula fermentum ex. Quisque gravida massa a arcu convallis, eu porta justo fermentum. Integer lacinia, ipsum hendrerit accumsan efficitur, mi nibh molestie nunc, sit amet suscipit nibh sapien vitae dui. Donec accumsan nisi sed neque malesuada dignissim. Vivamus fermentum purus et odio vulputate lacinia. Maecenas sollicitudin placerat tortor. Cras ante ex, sodales eget nunc ut, aliquam scelerisque neque.
 
Aliquam eu urna neque. Donec id erat ante. Cras eu erat quis dui tincidunt posuere. Duis lobortis ligula vitae mauris vestibulum rutrum. Proin commodo metus lorem, tristique tincidunt nisi lacinia non. Cras et mi enim. Suspendisse sed libero eleifend, tincidunt lorem dictum, tristique arcu. Suspendisse vel nisl sed est dictum commodo. Donec ut dignissim elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 
Praesent porttitor leo sem, at consectetur eros euismod ac. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quam tortor, vulputate quis erat id, semper finibus neque. Proin luctus metus odio, nec pharetra sem pulvinar posuere. Mauris semper mauris nec dictum consequat. Vivamus elementum accumsan risus, id dignissim justo lacinia consequat. Vivamus ultrices est sit amet turpis euismod, at maximus velit elementum. Duis a nisi at nisi faucibus scelerisque et a tellus. Vestibulum vestibulum augue quis posuere convallis. Sed justo diam, pharetra ut dui a, pellentesque viverra nisl. Mauris vitae enim pellentesque, tincidunt sem nec, varius tortor.";
$fp = fopen("file.txt", "r+");
ftruncate($fp, 0);
fwrite($fp, $text);
fclose($fp);
echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.';
?>
Время выполнения скрипта: 0.00099992752075195 сек., иногда 0.0010001659393311 сек.

Результаты идентичны - думается мне, что с текстом на 1кило, разница мало изменится изменится(если вообще изменится).
При этом файл в обоих случаях уже существовал.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.11.2017, 00:54
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Время выполнения скрипта: 0.00099992752075195 сек., иногда 0.0010001659393311 сек.
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Время выполнения скрипта: 0.00099992752075195 сек., иногда 0.0010001659393311 сек.
прямо так точно совпало?
0
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 19
09.11.2017, 09:12  [ТС]
Вот я тормоз, я и забыл что можно посмотреть время выполнения. Но даже если время выполнения почти одинаково, то все же как лучше, возможно как правильнее или предпочтительнее, создавать файл заново или стирать данные? Или тут как кому нравится?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.11.2017, 09:29
Цитата Сообщение от Rariot Посмотреть сообщение
как лучше
Нужно только писать в файл, поэтому w без +
А еще лучше file_put_contents
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
09.11.2017, 17:39
Jewbacabra,
Цитата Сообщение от Jewbacabra Посмотреть сообщение
А еще лучше file_put_contents
чем же? Нет же флага для перезаписи.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.11.2017, 18:13
Qwerty_Wasd, по дефолту перезапись. С флагом FILE_APPEND, или как-то так щапись в конец. Ну и лучше 1 вызов функции, чем
1
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
09.11.2017, 18:17
Jewbacabra,
Цитата Сообщение от Jewbacabra Посмотреть сообщение
по дефолту перезапись.
понял, благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2017, 18:17
Помогаю со студенческими работами здесь

Файл: Как с помощью Python записать (а не перезаписать) данные из базы SQLite в файл lex.txt.
Помогите с разработкой части проекта, пожалуйста! Есть файл db.sqlite в котором таджикские слова: words А Абад Адиб Асрор ...

Как перезаписать файл?
Использую потоки fstream, не могу найти информации о том, как перезаписать файл или же вернуть указатель на {0;0} файла

Как перезаписать файл?
Есть файл Есть прога которая считает сумму чисел после фамилии и инициалов и лишние пробелы удаляет(если они есть).#include...

Как перезаписать файл?
Всем привет! :) по нажатию на кнопку идет скачивание файла через интернет - все ОК! но если нажать повторно то опять произойдет...

Как перезаписать текстовый файл?
Мне нужно перезаписать текстовый файл. Но не полностью, а только последний отделенный кусок строки(|). Например: было 002|Федор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru