Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54

Как изменить текст внутри файла?

27.01.2020, 22:42. Показов 1445. Ответов 3
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
Поставил на бесплатный хостинг сайт. Мне требуется при определённых условиях выполнить действия:
1. Открыть файл где почти всё имеет бинарный тип (Пример как его открывает notepad++)
B  Xк6, - 9/+ B6. ) B6, - 9/+ BX А6. - 9(90B61 - )  + B-  XБ-  9'8 B79 6 69 B6 - B X
А6 - B6 69 B XА69 .  6*   XбА-  9:'; BXљА< XА6, - 9=+ B6. ) B6, - 9=+ B6. ) BX™А> XА6, - 9?+ B6. ) B6, - 9?+ B6. ) BXЧА@ XА6, - 9A+ B6. ) B6, - 9A+ B6. ) BXДАB XА6, - 9C+ B6. ) B6, - 9C+ B6. ) BXqАD XА6, - 9E+ B6. ) B6, - 9E+ B6. ) BX^А7 XА6, - 9F+ B6. ) B6, - 9F+ B6. ) BXKАG XА6, - 9H+ B6. ) B6, - 9H+ B6. ) BX8АI XА6, - 9J+ B6. ) B6, - 9J+ B6. ) BX%АK XА6, - 9L+ B6. ) B6, - 9L+ B6. ) BXАM XА6, - 9N+ B6. ) B6, - 9N+ B6. ) BERA6. )d B6, - 9/+ B6. ) B6, - 9/+ B6. ) B- 6 + <6 93O BXА6. - 9(90B61 - ) )¤¤- B- 6 + <6 93P BK  ј ј       VK_99 VK_88 VK_77 VK_66 VK_5 VK_44 VK_33 VK_22 VK_11 VK_00(.) gmatch sendval.¬ы можете вз¤ть ещЄ {82FF47}(%d*){FFFFFF}5 30050
tostringsampSendDialogResponse
delayVK_RETURN wait VK_DOWNsetVirtualKeyDowni

Примерно так же читает его функция readfile.
2. Найти в этом "тексте" интересующие меня символы (к примеру tostring) и заменить на другие
$result = str_replace('tostring', 'tonumber', readfile('путь к файлу'));
3. Перезаписать файл с новым текстом.
Вроде как всё понятно, но заменить текст у меня не получается, как перезаписать всё с изменениями (ВАЖНО, чтобы бинарная последовательность не была нарушена, изменить лишь текст)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2020, 22:42
Ответы с готовыми решениями:

Как изменить текст элемента, который находится внутри другого элемента?
есть элемент span который находиться внутри элемента р, как сделать так чтобы к примеру вместо &lt;p id=&quot;p&quot;&gt;123&lt;span...

Как изменить текст в системных кнопках? Например, при удалении файла есть 2 кнопки ("да" и "нет"). Как текст в этих кнопках заменить на свой?
Не надо говорить, что так сделать нельзя. Сам видел программу &quot;BazarBox&quot;. Она меняет их текст) Прошу помочь)) Прогу приложил)...

Переименование XML файла, используя текст внутри этого файла
Есть огромное количество XML файлов. Необходимо переименовать их в текст, содержащийся между тегами...

3
Невнимательный
 Аватар для ft4l
3107 / 1281 / 358
Регистрация: 08.02.2013
Сообщений: 7,496
Записей в блоге: 2
28.01.2020, 01:18
Лучший ответ Сообщение было отмечено Wintreist как решение

Решение

Если файл небольшой можно просто c file_get_contents() прочесть содержимое в переменную
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
то же относится к file_put_contents()

Если большой желательно считывать/записывать частями...
то режим открытия для fopen() будет 'rb' для чтения и 'wb'для записи
как бы может быть не обязательно для не которых систем, но
... можете использовать 'b', чтобы принудительно включить бинарный режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите 'b' или 't' последней буквой параметра
...
Замечание:
Из соображений портируемости, настоятельно рекомендуется всегда использовать флаг 'b' при открытии файлов с помощью fopen().
в смысле считываете с одного файла, меняете, пишите в другой.
Но есть проблема с определением размера буфера...
Например если считывать как $buffer = fread($handle, 2048);
может получиться так что искомая строка будет разделена.
Как вариант например можно искать в полученом фрагменте например первый символ искомого находящийся не далее чем длинна искомого от конца блока данных, чтобы усекать записанное в буфер и сдвигать указатель для чтения назад если такое присутствует и если не достигнут конец файла.
Но тут ещё одна проблема, касается и варианта с file_get_contents()

Кодировка текстовых данных
строка abc может присутствовать как
\x00\x61 \x00\x62 \x00\x63 - В кодировке UCS-2 BE
\x61\x00 \x62\x00 \x63\x00 - В кодировке UCS-2 LE

... а ещё есть UCS-4 оно же UTF-32
И такие UTF-16 используются в бинарных файлах чаще чем простые ANSI-кодировки...
И вся эта задумка с поиском первого символа в последнем фрагменте )) не так просто реализуемой если там такое UCS

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

Добавлено через 4 минуты
Цитата Сообщение от Wintreist Посмотреть сообщение
Пример как его открывает notepad++
Для него есть плагин HEX-Editor, посмотрите что за 'tostring' с "View in HEX"

Добавлено через 8 минут
И программа читающая этот файл скорее всего использует адресные указатели, то есть изменив размер строк Вы можете нарушить логику, а может и не изменив но дополнив нулями тоже нарушите
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
28.01.2020, 14:34  [ТС]
x_lab, В общем я понял, что это затея провальна)
0
Невнимательный
 Аватар для ft4l
3107 / 1281 / 358
Регистрация: 08.02.2013
Сообщений: 7,496
Записей в блоге: 2
28.01.2020, 15:37
Не факт, но вероятность есть ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.01.2020, 15:37
Помогаю со студенческими работами здесь

Изменить текст RadioButton на текст, считанный из файла
Как присвоить к radioButtonу переменную?

Изменить строчки внутри файла
Добрый день! Вопрос следующего характера (может и не совсем адекватный): можно ли с помощью гита не только заменять файлы обновленные, но и...

Сохранять текст внутри исполняемого файла
Всем доброго времени суток. Имеется программа с определённым текстом, сейчас текст хранится в исходном коде, есть необходимость сделать...

Как изменить текст в label1? Как textBox1 изменить переменную
подскажите, каким способом можно реализовать работу основного кода одновременно с диалогом и что бы можно было с помощью диалога наблюдать...

кто поможет изменить текст из файла и удалить php ::СРОЧНО
Здравствуйте дорогие друзья . Задача такая есть форма нужно проверить с помощью фильтров чтобы они не были пустыми еще тип должен был...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru