PHP заменяет ключевые слова в строке ссылкой на ссылку - PullRequest
1 голос
/ 15 сентября 2011

Я "толстый этим утром", поэтому, пожалуйста, извините за этот простой вопрос - у меня есть массив ключевых слов, например, array('keyword1','keyword2'....), и у меня есть строка текста - (немного похоже на содержание блога в длину, т.е. не просто несколько словно может быть 200-800 слов), каков наилучший способ поиска по ключевым словам в строке и заменить их ссылкой href.Таким образом, в тексте «ключевое слово 1» (как обычный текст) станет <a href='apage'>keyword1</a> и т. Д.

См. Сказанное было толстым это утра.

Спасибо в расширении.

Ответы [ 2 ]

3 голосов
/ 15 сентября 2011

Типичный preg_replace корпус:

$text = "There is some text keyword1 and lorem ipsum keyword2.";
$keywords = array('keyword1', 'keyword2');

$regex = '/('.implode('|', $keywords).')/i';

// You might want to make the replacement string more dependent on the
// keyword matched, but you 'll have to tell us more about it
$output = preg_replace($regex, '<a href="apage">\\1</a>', $text);

print_r($output);

См. Это в действии .

Теперь вышесказанное не делает "умную" замену в том смысле, что href не является функцией ключевого слова matched, хотя на практике вы, вероятно, захотите это сделать. Посмотрите preg_replace_callback для большей гибкости здесь или отредактируйте вопрос и предоставьте больше информации относительно вашей цели.

0 голосов
/ 29 мая 2012

ПОЧЕМУ вы бы использовали регулярное выражение вместо просто str_replace ()!? Regex работает, но он усложняет такой невероятно простой вопрос.

...