Добавить префикс к адресам ссылок

241
30 июня 2017, 08:09

Всем привет!

Помогите решить вопрос с регуляркой на php. СУТЬ: Нужно в контенте находить все ссылки, и добавлять приставку /uk/, чтобы получилось <a href="/uk/bla-bla/bla"></a>, и если находит ссылки уже с приставкой /uk/ - <a href="/uk/bla-bla/bla"></a>, то не добавлять(чтобы не получилось <a href="/uk/uk/bla-bla/bla">). сайт на ВП.

САМА РЕГУЛЯРКА:

$content = preg_replace("/<a(.*)href=\"([^\/uk\/])\"(.*)\/a>/","<a\\$1href=\"/uk\\$2\"\\$3/a>", $post->post_content);
$content = preg_replace("!<a(.*?)href=\"(.*?)\"(.*?)\/a>!si","<a\\1href=\"/uk\\2\"\\3/a>", $post_c->post_content);

Я не силен в регулярках, что не делал не получаеться(( Получилось только добавлять /uk/ Заранее спасибо большое Всем.

Answer 1

выражение

$text = preg_replace('/href="\/(?!uk\/)(.+?)"/im', 'href="/uk/$1"', $text);

заменит

/uk/bla-bla/bla   =>   /uk/bla-bla/bla
/ku/bla-bla/bla   =>   /uk/ku/bla-bla/bla
/bla-bla/bla      =>   /uk/bla-bla/bla
READ ALSO
Возврат значений во время Ajax-запроса

Возврат значений во время Ajax-запроса

Уважаемые посетители, столкнулся со сложностью, нуждаюсь в Вашей помощи

249
C++, ошибка stackoverflow

C++, ошибка stackoverflow

Задание:

259
Как склеить строку и вывод функциии length?

Как склеить строку и вывод функциии length?

На с++ не могу понять как можно склеить строку сущность std::string с выводом функции length от другой переменной

266
Как поймать событие epoll connect в неблокированном режиме?

Как поймать событие epoll connect в неблокированном режиме?

Под windows я отлавливал событие FD_CONNECTЗдесь такого, почему то, не нашёл

203