Замена програмно куска кода в файле .php другим куском кода27.11.2014, 14:05. Показов 3025. Ответов 6
Метки нет (Все метки)
Мне необходимо програмно заменить кусок кода в файле .php
Есть файл .php, в котором надо заменить кусок кода другим куском кода. Для этого я использую функци file_get_contents(), strtr() и file_put_contents(), которые в принципе нормально справляются. Но есть одна проблема. Кусок кода, который надо заменить, надо "подать" функции strtr() в виде строки (string). Если кусок кода не содержит знаков, которые надо экранировать с помощью обратного слеша, то все нормально. Но если есть знаки, которые надо экранировать, то тут возникают проблемы. Чтобы код подать в виде строки, надо его преобразовать в строку. Например: код
Проблема еще усугубляется тем, что кусок кода не в одну строку. Например:
Может есть в PHP функции, которые помогут решить эту проблему?
0
|
||||||||||||||||
| 27.11.2014, 14:05 | |
|
Ответы с готовыми решениями:
6
Автоматическая BATCH-замена в Аски файле одного куска текста другим Замена кода в файле средствами PHP Перевод куска кода с php на С# |
|
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
|
|||||||
| 27.11.2014, 14:32 | |||||||
0
|
|||||||
| 27.11.2014, 15:13 [ТС] | |||||||||||||||||||||
|
Более детально пояснюю
Указанные выше функции меняют одну строку на другую. Им не важно как они написаны, с двойными кавычками или с одинарными. Они делают свое дело. Но после того, как одна строка будет заменена на другую, она внезапно, становится не строкой, а кодом в PHP. Кроме кавычек, есть еще и другие знаки, которые надо экранировать. В итоге, строка, преобразованная в код, получается, что код НЕ ПРАВИЛЬНЫЙ, или строка изначально не в том виде, чтобы ее можно было найти в файле и поменять. Одну строку с фала вытягивает функция и я ее не вижу какая она, а вторую я сам прописываю, как указал. Если функция вытянула строку в виде
Вот в этом то и проблема.
0
|
|||||||||||||||||||||
|
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
|
|
| 27.11.2014, 15:35 | |
|
Посмотрите результат функци file_get_contents(). Там не могут быть переменные.
Там их значения. Вы пытаетесь спарсить PHP-код??? Это не возможно.
0
|
|
| 27.11.2014, 15:47 [ТС] | |||||||||||
|
К сожалению, Вы не правы.
Часть кода, где не надо делать экранирование, у меня с упехом заменяется. А вот где есть экранирование, возникают проблемы. Опять же. Тот код, который мы обсуждаем
Просто я не стал приводить (есть в начале) более большой кусок кода, который надо менять. так как дело в принципе, а не в размере кода. Добавлено через 3 минуты Приведу пример: вот этот код в виде строки
Функция легко его находит и заменяет дургим моим кодом (тут не привожу. не зачем). Но, как видите, если вставить этот код в PHP файл, язык не будет ругаться на него, код правильный, но и строка правильная согласно PHP. Мне и надо найти такой вариант с обратным слешем, чтобы это был и код правильный и строка правильная.
0
|
|||||||||||
|
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
|
||
| 27.11.2014, 16:13 | ||
|
1
|
||
| 27.11.2014, 17:02 [ТС] | ||||||
|
По поводу вопроса. Да очень легко читается, ведь это обыкновенный текстовый файл. Вспомните теорию PHP.
Но, кажется я нашел решение. Просто сохраню кусок кода, который собираюсь искать в текстовом файле с расширением .txt Теперь
Все зависит в каком файле этот кусок кода находится. Добавлено через 22 минуты Только что попробовал, как писал выше. Все отлично работате. Спасибо за желание помочь.
0
|
||||||
| 27.11.2014, 17:02 | |
|
Помогаю со студенческими работами здесь
7
Помощь с куском кода Поделитесь куском кода Не могу разобраться с куском кода Помощь с куском кода на Delphi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 была полностью переписана на Си, в. . .
|