Как я могу преобразовать URL-адреса в тексте в ссылки HTML? - PullRequest
3 голосов
/ 08 мая 2009

Я пишу форумную дискуссионную доску на Perl и хотел бы автоматически изменить http://www.google.com на HTML-ссылку. Это также должно быть безопасным, и ошибка на стороне безопасности. Существует ли быстрый, простой и безопасный способ автоматического добавления ссылок?

1 Ответ

8 голосов
/ 08 мая 2009

Попробуйте что-то вроде этого:

use Regexp::Common qw /URI/;

$text =~ s|($RE{URI}{HTTP})(?!</a>)|<a href="$1">$1</a>|g

Ключевым моментом здесь является использование Regexp :: Common :: URI, который, вероятно, имеет более полное соответствие URL, чем все, что я мог придумать Также в конце я делаю отрицательное прогнозное утверждение , чтобы убедиться, что URL-адрес еще не находится в ссылке. Эта последняя часть не совсем тщательна, так как возможно, что кто-то может сделать что-то вроде этого:

<a href="http://www.mysite.com">http://www.mysite.com is my website</a>

Чтобы сделать это правильно, вам нужно проанализировать весь текст заявки и заменить только те URL-адреса, которые еще не являются частью ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...