Например, я получаю данные через $_POST в виде:
$text = "(ref|https://stackoverflow.com|Текст) лучший сайт в мире";
Мне нужно, чтобы произошла замена на:
<a href="https://stackoverflow.com">Текст</a> лучший сайт в мире
Пробовал разное, что-то типа str_replace и т.д., но не получается. Тк помимо этой строки я получаю еще текст. А заменять нужно именно эту строку + чтобы текст "лучший сайт в мире" оставался не тронутым. Есть решение?
$text = "(ref|https://stackoverflow.com|Текст) лучший сайт в мире";
$pattern = '/\((ref)\|(.*)\|(.*)\)/i';
$replacement = '<a href="$2">$3</a>';
echo preg_replace($pattern, $replacement, $text);
Выведет: <a href="https://stackoverflow.com">Текст</a> лучший сайт в мире
Разбирать структуру с выраженным синтаксисом нужно с помощью лексера/парсера.
Особенно если это не единичный случай.
Но всё же:
function translate($input){
if(preg_match("_\(ref\|((?:https?|ftp)://(?:-\.)?(?:[^\s/?\.#-]+\.?)+(?:/[^\s]*)?)\|([^\)]+)\)(.+)?_iS", $input, $matches) === false) return false;
return "<a href='" . $matches[1] . "'>" . $matches[2] . "</a>" . $matches[3];
}
$text = "(ref|https://stackoverflow.com|Текст) - лучший сайт в мире";
var_dump(translate($text)); // string(86) "<a href='https://stackoverflow.com'>Текст</a> - лучший сайт в мире"
Repl.it
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть curl запрос который принимает данные и записывает в бдВопрос: есть ли какая уязвимость здесь и если есть то как защититься? Я про подделывания...
ЗдравствуйтеЕсть переменная $text в которой находится текст в виде html содержимого
На сайте реализована выгрузка данных в CSVВ виде входящих данных многомерный массив