При сохранении текста в базу, нужно все латинские слова выделить курсивом. Текст берется из tinymce, т.е. в базу заносится с тэгами. Как выделить все латинские слова курсивом, но при этом не трогать тэги?
Попробовал сделать так:
$string = $data['Text'];;
$pattern = "#(?<=^|>)[^><]+?([a-z]+)#i";
$replacement = "<i> $1 </i>";
echo preg_replace($pattern, $replacement, $string);
Но не совсем правильно работает. Например, если перед латинским словом идет русский текст, то он убирается и началом становится первое латинское слово.
Примечание:
Спасибо. Так гораздо лучше) А можно как то в это условие добавить обход спец. символов типа « » и т.п., то есть видимо то что начинается с амперсанда и заканчивается точкой с запятой. Думал сделать через str_replace, заменять на какие то буквосочетания, а после применения preg_replace возвращать обратно. Но кажется это какая то хрень громоздкая и не совсем правильная..
Примечание:
Спасибо большое. Вроде разобрался
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.