Я использую preg_replace для замены ключевых слов в тексте тегом href, мое регулярное выражение работает потрясающе, сейчас мой код:
$newstring2 = preg_replace("/\p{L}*?".preg_quote($match[$i])."\p{L}*/ui", "<a href='".$url."' class='link'>$0</a>", $newstring);
Единственная проблема в том, что мне нужно исключить любые ключевые словавнутри <a href='https://keyword.cz' title="keyword">keyword</a>
Это то, что я нашел https://stackoverflow.com/a/22821650/4928816
Итак, кто-то, кто может помочь мне объединить эти два регулярных выражения?
Пример:
$text = 'this is sample text about something what is text.'
$keyword = 'text'
Теперь, благодаря моему регулярному выражению, я получаю:
$text= 'this is sample <a href='somelink.php'>text</a> about something what is <a href='somelink.php'>text</a>.'
Но если текст такой:
$text= 'this is sample <a href='text.php'>text</a> about something what is <a href='somelink.php'>text</a>.'
Эточто например я получаю:
$text= 'this is sample <a href='<a href='somelink.php'>text.php</a>'><a href='somelink.php'>text</a></a> about something what is <a href='somelink.php'><a href='somelink.php'>text</a></a>.'
Обновление: зачем мне это.Работает над функцией замены всех ключевых слов с определенным URL в конкретном сообщении в блоге, полном тегов. Например, если
$keyword = 'key';
, мне нужно найти и заменить полный мир тегом href, например: Ключ, ключевое слово, ключевое слово, keylock, mykey, keys или также KeY, ключевое слово с поддержкой UNICODE