В настоящее время у меня есть следующий код для добавления a href
к отправленному пользователем тексту, где находится HTTPS://
. Проблема в том, что это, очевидно, меняет все ссылки в тексте на одинаковые name/location
. Как я могу сделать этот процесс отдельно для каждого экземпляра HTTPS://
в тексте?
//Example variables (usually from MySQL)
$moreOrig = "https://duckduckgo.com is better than https://google.com";
// The Regular Expression filter
$testUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
if (preg_match($testUrl, $moreOrig, $url)) {
//split into parts if user has a /something to clean url
$parts = explode ("/", $url[0]);
//glue
list($first, $second, $third) = $parts;
//output
$shortUrl = implode ("/", array($third));
$more = nl2br(preg_replace($testUrl, "<a href='" . $url[0] . "' rel = 'nofollow'>" . $shortUrl . "</a>", $moreOrig));
}
Вывод, требуемый против фактического (предположим, что входная переменная = "https://duckduckgo.com? Q = Утка + Утка + Го лучше, чем https://google.com? Q = Утка + Утка + Го")
Desired:
<a href = "https://duckduckgo.com?q=Duck+Duck+Go">duckduckgo.com</a> is better than <a href = "https://google.com?q=Duck+Duck+Go">google.com.</a>
<br>
Actual:
<a href = "https://duckduckgo.com?q=Duck+Duck+Go">duckduckgo.com</a> is better than <a href = "https://google.com?q=Duck+Duck+Go">google.com.</a>