PHP: определить, является ли строка гиперссылкой, и сделать ее кликабельной

В большинстве приложений чата, когда пользователь вводит гиперссылку, она автоматически становится активной в окне чата. Как мне повторить это поведение, используя PHP / JavaScript / JQuery?

По сути, моя идея заставить его работать — проверять строку сообщения чата на наличие гиперссылок и заключать их в <a href> теги с самим собой в качестве ссылки. Это правильно, и если да, то как мне это сделать? Кроме того, как мне сделать так, чтобы ссылки открывались в новой вкладке вместо замены моей страницы?

РЕДАКТИРОВАТЬ Это заняло у меня немало проб и ошибок, но эта функция PHP должен работать по всем реалистичным сценариям:

function formatTextLinks($text) {
$words = preg_split("/[\s,]+/", $text);
$offset = 0;

foreach($words as $value) {
preg_match("/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/", $value, $matches);

$s = $matches[0];
if(!is_string($s)) continue;
$pos = strpos($text, $s, $offset);
if($pos !== false) {
$helper = "";
if(strpos($s, "http://") === false || strpos($s, "https://") === false) $helper = "http://";
$text = substr_replace($text, "<a href='".$helper.$s."' target='_blank'>".$s."</a>", $pos, strlen($s));
$offset = $pos + strlen("<a href='".$helper.$s."' target='_blank'>".$s."</a>");
}
}

return $text;
}

0

Решение

Вы можете использовать регулярное выражение php или javascript, чтобы проверить, является ли это URL (ссылка).
Если да, создайте тег HTML-ссылки, используя jquery.

Это шаблон регулярных выражений

/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

Это источник http://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know—net-6149

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]