Скрипт замены контента

weBos
На сайте с 07.01.2009
Offline
78
1025

Приветствую!

Появилась интересная задумка, но для её выполнения мне нужна ваша помощь, точнее совет...

Как реализовать следующие:

есть листинг кода html, в нем например есть несуществующие теги <blank></blank>, мне нужно чтобы какой-то скрипт или посредством XML перед загрузкой DOM-модели пробегал и менял теги на те которые указаны во втором файле, в котором будет ассоциация заменяемых тегов, сделана например так:


var zamena = {
blank: "пустой",
div: "блок",
p: "параграф"
}

Но суть в том, чтобы в коде все теги были на месте(т.е. оставалось <blank></blank>), а в выдачи при построение dom-дерева скрипт менял на <пустой></пустой> к примеру!

ДП
На сайте с 23.11.2009
Offline
203
#1

body.innerHTML.replace('blank','пустой'); ?

или я что-то не так понял?

weBos
На сайте с 07.01.2009
Offline
78
#2
Дикий пионер:
body.innerHTML.replace('blank','пустой'); ?
или я что-то не так понял?

Ну в принципе так, но мне вот этих замен нужен будет огромный список сразу, нужен какой-то компактный вариант и чтобы не тормозил страницу!

Можно этим способом пользоваться с большим кол-вом замен?

ДП
На сайте с 23.11.2009
Offline
203
#3

Чтобы было не так медленно - запишите сначала значение в переменную, замените там все, что надо, а потом назначте body.innerHTML значение переменной. В общем суть сократить операции с DOM - они довольно медленные.

gormarket
На сайте с 29.12.2010
Offline
47
#4

Если делать замены на стороне сервера на PHP, то можно использовать функцию preg_replace

$document = preg_replace ($search, $replace, $text);

где $search и $replace могут быть массивами (регулярных выражений и строк для замены соответственно).

Т.е. можно реализовать сотни и даже тысячи замен одной командой (главное заранее подготовить массивы)

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
ДП
На сайте с 23.11.2009
Offline
203
#5

У автора вроде простые строки, можно strtr() обойтись, регулярки опять же медленне. Хотя, как мне кажется, у автора не такие объемы текстов и замен, чтобы разница в скорости была заметной

weBos
На сайте с 07.01.2009
Offline
78
#6

Объема замены - все теги html, суть идеи сделать html на русском для истинных патриотов(aka языку 1С на русском):)

Joker-jar
На сайте с 26.08.2010
Offline
171
#7

Мсье... Если на то пошло, то уж лучше написать конвертер *.яргт -> *.html, чтобы операция эта один раз производилась перед заливкой на сервер

weBos
На сайте с 07.01.2009
Offline
78
#8
Joker-jar:
Мсье... Если на то пошло, то уж лучше написать конвертер *.яргт -> *.html, чтобы операция эта один раз производилась перед заливкой на сервер

Ну вот по сути я это и хочу узнать, как это все реализовать по-граммотнее, конечно в широкое использование моя "идея" не пойдет, но самому охота поверстать на русском))

P
На сайте с 24.01.2009
Offline
63
#9

Не знаю на сколько это будет комфортно и быстро, но можно сделать так при помощи php:

Допустим есть у нас index.php и main.tpl.

В main.tpl у нас все что касается html где все теги на русском и выводится через index.php:


$main = путь к main.tpl;
$russ_to_eng = array('параграф' => 'p', 'блок' => 'div', 'пустой' => 'blank'); #и т.д. все теги
$html_russ = file_get_contents($main);
echo strtr ($html_russ, $russ_to_eng);
weBos
На сайте с 07.01.2009
Offline
78
#10
Payk:
Не знаю на сколько это будет комфортно и быстро, но можно сделать так при помощи php:
Допустим есть у нас index.php и main.tpl.
В main.tpl у нас все что касается html где все теги на русском и выводится через index.php:

$main = путь к main.tpl;
$russ_to_eng = array('параграф' => 'p', 'блок' => 'div', 'пустой' => 'blank'); #и т.д. все теги
$html_russ = file_get_contents($main);
echo strtr ($html_russ, $russ_to_eng);

Уже хоть что-то, пасиб попробую!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий