Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена определенных слов в документе 
:(
    Опции темы
Aliance
Дата 23.5.2005, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(Mont @ 23.5.2005, 05:37)
значит тебе просто надо это дело писать не ввиде HTML, а в ПХП выводить через echo, или print. Ну а там соответственно подставляй какие хочешь значения.

Нет, я же написал файл называется index.php - т.е. там сочитаются HTML и PHP!

IZ@TOP
Да, получается изврат.

Ладно, скажу проще. В IPB есть такие вещи в PHP файле:
Код

...
{BLA-BLA-BLA}
...

И это заменяется на то-то и то-то... Макросы другим словом.
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.5.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Aliance @ 23.5.2005, 09:21)
Ладно, скажу проще. В IPB есть такие вещи в PHP файле:

Это по тому принципу, который я тебе показал.
PM ICQ   Вверх
Opik
Дата 23.5.2005, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Aliance
сами макросы в IPB хранятся в базе.

Код

        $TAGS = $DB->query("SELECT macro_value, macro_replace FROM ibf_macro WHERE macro_set={$ibforums->skin['macro_id']}");
              while ( $row = $DB->fetch_row($TAGS) )
              {
                        if ($row['macro_value'] != "")
                        {
                                $ibforums->skin['template'] = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $ibforums->skin['template'] );
                        }
                }

PM MAIL Skype   Вверх
Aliance
Дата 23.5.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Opr
Это мне ничего не дает... Тут принцип нужен :-)

Mal Hack
значит мне не дано понять это =)
PM MAIL WWW ICQ Skype   Вверх
Opik
Дата 23.5.2005, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Aliance
я лишнее и так убрал и оставил 1 принцип.
в базе хранится
что меняется | на что меняется.
Код

 while ( $row = $DB->fetch_row($TAGS) )
              {
                        if ($row['macro_value'] != "")
                        {
                                $ibforums->skin['template'] = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $ibforums->skin['template'] );
                        }
                }

- производим замену.
в чем проблема?
PM MAIL Skype   Вверх
Mal Hack
Дата 23.5.2005, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Aliance @ 23.5.2005, 16:31)
значит мне не дано понять это =)

Есть текст. В нем макросы (%test%).
Мы идем по тексту. Находим макрос. Передаем в функцию, которая возвращает значение, на которое мы заменяем этот макрос.
Сама функция смотрит, какой именно макрос пришел и исходя из этого возвращает текст. Уж как проще, прости не могу smile

PM ICQ   Вверх
Aliance
Дата 23.5.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Дело в том, Mal Hack, что в твоем примере текст из IPB берется из темпалта файла *.tpl - тоесть вместо 1 файла (index.php) их 2 (index.php, template.tpl). А я с самого начал поставил условие - файл один.
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.5.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Aliance @ 23.5.2005, 21:41)
Дело в том, Mal Hack, что в твоем примере текст из IPB берется из темпалта файла *.tpl - тоесть вместо 1 файла (index.php) их 2 (index.php, template.tpl). А я с самого начал поставил условие - файл один.

Дык какая разница откуда берется... Главное что ты с ним потом делаешь!! smile
PM ICQ   Вверх
Aliance
Дата 23.5.2005, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



В сотый раз повторяю: я не знаю как взять в переменную ссылку на сам документ, чтобы из него вырезать то, что мне нужно.
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.5.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Код

<?php
ob_start();
?>

<html>
...
<body>
bla-bla %text% ... la-la-la..
</body>
</html>

<?php
$code = ob_get_clean();
print preg_replace( "#%(.+?)%#ie" , "hl_do( '\\1' )" , $code , TRUE );
function hl_do( $text )
 {
  switch( $text )
   {
     case "test": return "<b>bla-bla-bla</b>"; break;
   }
 }

?>

PM ICQ   Вверх
Aliance
Дата 23.5.2005, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Не работает
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.5.2005, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Код
<?php
ob_start();
?>
<html>
...
<body>
bla-bla %test% ... la-la-la..
</body>
</html>
<?php
$code = ob_get_clean();
print preg_replace( "#%(.+?)%#ie" , "hl_do( '\\1' )" , $code , TRUE );
function hl_do( $text )
 {
  switch( $text )
   {
     case "test": return "<b>bla-bla-bla</b>"; break;
   }
 }
?>

PM ICQ   Вверх
Aliance
Дата 23.5.2005, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Mal Hack
А есть отличия?
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.5.2005, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Aliance @ 23.5.2005, 22:50)
А есть отличия?


Цитата(Mal @ 23.5.2005, 21:48)
bla-bla %text% ... la-la-la..


Цитата(Mal @ 23.5.2005, 22:44)
bla-bla %test% ... la-la-la..

smile
PM ICQ   Вверх
Aliance
Дата 23.5.2005, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Пасип, работает. Но больно муторно как-то...подумаю, использовать ли ))
С меня плюс
PM MAIL WWW ICQ Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.