|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.05.2021, 09:44 | #1 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Парсинг и замена слова в тексте
Я хочу сделать функционал, который в моем php файле находит html-элемент по id и изменяет в нем текст.
Код:
Например, это может выглядеть так: Код:
Код:
|
26.05.2021, 16:41 | #2 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,597
|
Звездочка часть строки пока что, вы что пытаетесь регулярками что-то сделать? что за знак вопроса, что за скобочки?
Что в переменной $web ? Цитата:
Пока никакого кода замены и не заметно. |
|
01.06.2021, 12:18 | #3 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Окей, какая тут задача... Я сгенерировал одностраничный сайт, и мне на нем нужно что-то изменить. Я нажал на изменить, и у меня сработал JS-код, который встроен на этот сайт. Допустим, были "Общие положения", стали "Основные положения". Скрипт меняет "Редактировать" на "Сохранить" и наоборот, а с помощью AJAX-запроса передает данные на php-скрипт.
1111.jpg Я ради концепции решил не работать с базой данных при генерации файлов, то есть они все находятся физически на диске в той директории, в которой нужно. Поэтому дальше мне надо открыть файл, в котором JS-изменил название одного из заголовков, пройтись по этому файлу и заменить html-элемент. Вот, сам элемент показан в первом посте. И я имею в $web содержимое файла, а также у меня есть информация, что на что заменить. То есть я имею $pattern, в нем делаю замену $replacement = '${1} 1 ${3}'; Пока поставил 1-ку для простоты, дескать хоть на что-то поменять. Ошибку не выдает сейчас, но замены не происходит. Что делаю не так тогда, и как нужно? Последний раз редактировалось Krasi; 01.06.2021 в 12:22. |
01.06.2021, 12:24 | #4 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,597
|
Аякс лишь упрощает работу, он создать может страницу на странице и там провести работу подгрузить, обратиться к базе, отправить.
Я пока не могу сообразить кто вам на сервере разрешит ява скрипту менять файлы. Ставьте базу если это решит вашу проблему, ничего сложного нет, базы данных на файликах не работосопособны при любых минимальных нагрузках. Что-то на сервере делать - это вам к PHP можно попробовать наделать файликов Include, и их подгружать, их менять с помощью PHP возможностей, тогда и Replase не нужен файл можно пересоздавать. Общие положения", стали "Основные положения" например в файле OSN.inc "Редактировать" на "Сохранить" в файле Button.inc тоже старые технологии, но именно так базы данных на файликах примитивные и делались. Удобно для создания навигации, хеадер, сайбар, футер. И если вам просто лень искать в большом файле для замены и работы в ручную, то ,inc файл проще найти и во многие документы внедрить как шаблон вообщем это называеется функциональное программирование, по сути вы запрашиваете в данном случае функцией - кусок текста или кода без входящих исходящих переменных. |
01.06.2021, 19:45 | #5 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Не, все на php происходит, я туда просто ajaxом посылаю переменные. Пока вообще можно абстрагироваться, что у меня есть php-скрипт, он открывает файл, производит замену в нем и закрывает его, сохранив изменения.
То есть мне нужен код, как на php открыть файл, найти в нем html-элемент по id, произвести замену его свойства и потом переписать файл с помощью file_put_content(). Пытаюсь понять, как это правильно сделать? Последний раз редактировалось Krasi; 01.06.2021 в 19:50. |
01.06.2021, 23:27 | #6 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,597
|
чтобы этого не делать я предложил каждую переменную положить в ,inc файл и подгружать их через include php функцию
в таком случае ничего искать не надо, вы знаете что где лежит. можете заменять хоть программно хоть вручную, зная что именно это заменится. Код:
Цитата:
https://www.php.net/manual/ru/langua...bles.scope.php |
|
03.06.2021, 18:12 | #7 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Предложение хорошее, но пока мне нужен именно поиск по файлу. То есть делать через инклуды не вариант, там долго рассказывать. продукт относительно сложный. Мне надо понять, что я делаю не так, что в php-файле, который я открываю не заменяется значение. Точнее, оно не заменяется после самой функции поиска и подмены (регулярки).
|
03.06.2021, 18:22 | #8 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Ок, вот скрипт, как я сейчас делаю. Вообще да, я думаю, что можно будет потом как-то оптимальнее сделать, но пока хочу понять, что здесь не так.
Код:
|
03.06.2021, 18:44 | #9 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Разобрался. Вот решение.
Код:
|
04.06.2021, 10:30 | #10 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,597
|
Хорошо что код опубликовал, может пригодится кому.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена определённых слов в тексте на слова из словаря | Enmaboya | C# (си шарп) | 0 | 21.01.2018 16:26 |
Замена в тексте. | Артём_2 | C++ Builder | 1 | 18.10.2016 14:13 |
Дан текст. Слова в тексте отделены одним пробелом, в конце текста точка. Распечатать все слова текста, которые содержат..... | Anton94.by | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 06.02.2012 23:36 |
замена символов в тексте | majikku | Общие вопросы Delphi | 1 | 31.01.2011 00:13 |
Замена символов в тексте | Pasha_Sh | Работа с сетью в Delphi | 13 | 16.06.2010 00:29 |