dzheka3d
@dzheka3d

Как правильно воспользоваться preg_replace()?

Привет! Делаю на сайте перелинковку и вроде все сделал но столкнулся с такой проблемой.
Из базы выбирается список слов, которых нужно заменить, скажем, их будет несколько сотен, ссылки к каждому слову и количество замен на страницу.
Я попробовал сделать так:
preg_replace(array('... тут сотня слов'), array('... тут сотня ссылок'), $text);

но нельзя указать массивом количество замен для каждого слова, поэтому приходится проходить циклом:
for($words as $value){
preg_replace($value['word'], $value['link'], $text, $value['count_on_page']);
}

получается несколько сотен циклов при загрузке страницы, а если это будут тысячи слов, как, скажем, в википедии. На сколько это критично? И может есть более интересный способ?

использую preg_replace() потому что идет выборка не просто по слову, но и по окончаниям. Иначе пришлось бы в добавок ко всему еще и каждое окончание перебирать.
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
@devian3000
если массив то лучше так
strtr( $string, array( 'Что заменить' => 'На что заменить' ) );
Чтобы подготовить массив можно так
array_combine ( array('Что заменить'), array("На что заменить") );

p.s. preg_replace использует регулярки (то как вы его используете это молотком болты вкручивать =))) )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы