Главная > PHP > str_replace не внутри ссылок

str_replace не внутри ссылок

if(!preg_match_all("|<a.* href=(.*)>(.*)".$word."(.*)</a>|U",$text,$out)){
}

http://phpclub.ru/talk/threads/Замена-слов-ссылками-с-игнорированием-замены-внутри-ссылки.59457/
Полный текст примера из источника:

//Функция замены по маске
function GlossaryFilter($text){
	//Прочли файл
	$glossfile=@file($_SERVER['DOCUMENT_ROOT']."/cache/glossary.txt");
	foreach($glossfile as $mask_word){
		$token=explode("|",$mask_word);
		//Если найдено слово из списка
		if(stristr(trim($text),$token[0])){
			//Проверка присутствие ключевого слова внутри ссылки
			if(!preg_match_all("|<a.* href=(.*)>(.*)".$token[0]."(.*)</a>|U",$text,$out)){
				//Заменяем его на ссылку
				$text=str_replace($token[0],"<a href=\"".trim($token[1])."\" target=\"_blank\">".$token[0]."</a>",$text);
			}
		}
	}
	//Вернули текст
	return $text;
}
Categories: PHP Tags:
  1. Пока что нет комментариев.
Похожие публикации