|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
|
Нужно разбить строку по условию <?.?>, <?php ?>22.12.2012, 22:37. Показов 2821. Ответов 16
Метки нет (Все метки)
Доброго времени суток! Нужна помощь.
К примеру, есть запись в бд вида: текст текст текст текст текст текст текст текст <?php ... ?> текст текст текст текст <? ... ?> текст текст текст текст текст текст текст текст текст текст текст <?php ... ?>. Нужно разбить этот текст в массив вида: [0] => текст текст текст текст текст текст текст текст, [1] => <?php ... ?>, [2] => текст текст текст текст, [3] => <? ... ?>, [4] => текст текст текст текст текст текст текст текст текст текст текст, [5] => <?php ... ?> Как можно такое реализовать?
0
|
|
| 22.12.2012, 22:37 | |
|
Ответы с готовыми решениями:
16
Разбить поле и создать новую строку по условию Нужно разбить строку
|
|
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
|
|
| 23.12.2012, 00:03 | |
|
зачем это нужно? опиши подробно задачу, возможно этого и не требуется.
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
||
| 23.12.2012, 00:38 [ТС] | ||
|
Я пришел к выводу разбить всю строку на подстроки, и искать в начале "<?". Если находим, то используем функцию eval, если не находим, то echo.
0
|
||
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
| 23.12.2012, 00:56 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
||
| 23.12.2012, 01:06 [ТС] | ||
|
0
|
||
|
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
|
|
| 23.12.2012, 01:11 | |
|
Структура данных везде одинакова, т.е. всегда в 1,3,5 элементе массива будет код php? Если нет, то нужно двумя регулярками прогонять, да и решение какое-то "кривое" получиться )))
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
||
| 23.12.2012, 01:15 [ТС] | ||
|
0
|
||
|
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
|
|
| 23.12.2012, 01:19 | |
|
Вот, блин ))) Тогда получается нужно разбивать регуляркой, а потом ещё каждый элемент проверять на наличие в нём PHP кода, чтобы применить к нему eval().
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
|
| 23.12.2012, 01:19 [ТС] | |
|
Да я думал про две регулярки и два массива, но мне показалось, что решение реально "кривое") Неужели нет функции в php которая бы разбивала строку по регулярному выражению, при этом оставляя результат регулярного выражения так же в массиве?
0
|
|
|
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
|
|
| 23.12.2012, 01:24 | |
|
Даже решение с двумя регулярками не поможет (это я поспешил), поскольку Вы то получите отдельно текст, отдельно код, но не будете знать, что за чем идёт
0
|
|
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|||
| 23.12.2012, 01:28 | |||
|
Вынести код туда, где ему место. В зависимости от кода.
0
|
|||
|
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
|
|
| 23.12.2012, 01:30 | |
|
А в тексте html теги есть?
1
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
|
| 23.12.2012, 01:57 [ТС] | |
|
Чтож, вариант хранить все страницы в отдельных файлах (которые лежат в отдельных каталогах), и создавать таблицу соответствий в бд, с заголовками, мета данными и символьными кодами, как это делает битрикс. Однако, это создает неудобное нагромождение. И хочется чего-то поудобнее.
Нечто подобное тому, чего я хочу, реализует modx. Однако там вызов кода реализуется с помощью специальных конструкций вида {{}}, и с помощью этих конструкций тянуться php файлы. Я же хочу перенести всю работу страниц сайта в базу данных, только с тем условием, что можно спокойно писать в этих кодах как html код, так и php. Добавлено через 18 минут И все же, господа, неужели нет способа разбить такую строку в нужный мне массив?
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 23.12.2012, 02:19 | ||||||
Добавлено через 1 минуту для html надо писать отдельный парсер
1
|
||||||
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
||||||
| 23.12.2012, 06:20 [ТС] | ||||||
|
в общем в итоге получилось как то так:
0
|
||||||
|
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
|
|
| 23.12.2012, 10:54 | |
|
ну у вас явно ужасающая архитектура
хранить в БД нужно данные, а не php код нет никаких причин хранить php код в теле "страниц", т.е. шаблонах да и шаблоны в БД хранит нет смысла я бы вот что сделал - я бы кэшировал как файлы ваши данные из таблиц и с помощью буферизации вывода генерировал бы страницы и через include подключал. но, повторюсь - ваша архитектура - гумно, уходите от неё.
1
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 12
|
|||||||
| 23.12.2012, 20:11 [ТС] | |||||||
|
Существуют некие классы, выводящие на веб-страницу определенные элементы (к примеру форму авторизации, если пользователь не авторизован, блок новостей, и т. д.) метод класса вызывается одной строчкой кода, вида
Сейчас я думаю, что если ввести некий синтаксис отвечающий за вывод таких элементов (к примеру возьмем конструкцию вида {= =}, в которой будем передавать определенные настройки, а при отображении страницы заменять эти конструкции реальным кодом с заданными настройками. Такой вариан смотрится лучше, или тоже не годится?
0
|
|||||||
| 23.12.2012, 20:11 | |
|
Помогаю со студенческими работами здесь
17
нужно разбить строку на массив, ошибка: assignment to expression with array type o=0; нужно разбить исходную строку на две подстроки , причём первая длинной k Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|