TroL929
@TroL929
веб-программист

Как составить регулярку как на qtranslate-x?

Мне надо составить регулярное выражение для мультиязычного сайта. За идею взял плагин "qtranslate-x" из wordpress.
Текст в базе будет выглядеть примерно так:
<div>
<img src='/logo.png'>[:ru]Привет мир[:en]Hello World[:]
</div>

Надо получить такой вид при выборе русского языка:
<div>
<img src='/logo.png'>Привет мир
</div>


В исходниках плагина найти не смог к сожалению. С регулярками у меня всегда была проблема, так что не надо меня отправлять на мануалы. Надеюсь найдется знающий и понимающий человек который мне поможет.
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
riky
@riky
Laravel
<?php

$html = "<div>
<img src='/logo.png'>[:ru]Привет мир[:en]Hello World[:]
</div>";

$lang = 'ru';

echo preg_replace_callback('|\[:.*\[:\]|isuU', function ($find) use ($lang) { 
    if (preg_match('|\[\:' . $lang . '\](.*)\[\:|isuU', $find[0], $matches)) {
        return $matches[1];
    }
}, $html);


результат

<div>
<img src='/logo.png'>Привет мир
</div>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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