Добавит текст к ссылке php
Подскажите пожалуйста, есть данная переменная
$description = "текст https://google.com текст";
Как я могу ссылку взять в тег [link] что бы получилось так:
$description = "текст [link]https://google.com[/link] текст";
Ответы (3 шт):
Автор решения: Denis640Kb
→ Ссылка
Если на php, то простым образом можно так(Чтобы не писать регулярные выражения, так как ссылка может быть разной):
$description = "текст https://google.com текст";
$new = explode(' ', $description);
$newline = '"'.$new[0].' [link]'.$new[1].'[link] '.$new[2].'"';
print_r($newline);
Вариант с регулярным выражением.
$description = "текст https://google.com текст";
$new = preg_replace("^((ftp|http|https):\/\/)?(www\.)?([A-Za-zА-Яа-я0-9]{1}[A-Za-zА-Яа-я0-9\-]*\.?)*\.{1}[A-Za-zА-Яа-я0-9-]{2,8}(\/([\w#!:.?+=&%@!\-\/])*)?^", '[link]$0[link]', $description);
print_r($new);
Автор решения: Anton Shchyrov
→ Ссылка
$description = "текст https://google.com текст";
$description = preg_replace('~(https?://.*?)(\s|$)~', '[link]$1[/link]$2', $description);
var_dump($description);
Ищем начало ссылки в виде https:// или http://. А конец - первый пробел после начала или конец строки
Автор решения: Shalam
→ Ссылка
Можно попробовать используя только explode:
$description = "текст https://google.com текст";
$one = explode('https://', $description, 1); // [0]:'текст ' [1]:'google.com текст'
if (empty($one)) {
echo 'не найдено';
} else {
$two = explode(' ', $one[1], 1); // [0]:'google.com' [1]:'текст'
$result = $one[0].'[link]https://'.$two[0].'[/link] '.two[1];
}