preg-match thar находит ссылки в тексте, но останавливается перед тэгами "<" - PullRequest
0 голосов
/ 26 августа 2011

Я получил этот код, чтобы найти текст в строке, похожей на ссылку, и преобразовать его в ссылку a-tag. Поскольку я также использую крошечный mce для ввода данных, такая ситуация часто возникает (поскольку крошечный mce и другой редактор любят абзацы).

строка

http://www.google.se</ p>

и скрипт выдает ссылку

href=" http://www.google.se</ p>"

(.. хмм, только что обнаруженный стек переполняет текст, чтобы связать скрипт работает))

код

$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

if(preg_match($reg_exUrl, $string, $url)) {


       return preg_replace($reg_exUrl, "<a href=\"" . $url[0] . "\" target=\"_blank\">" . $url[0] . "</a> ", $string);

    }

как мне изменить прег, чтобы остановить ссылку, когда найден <?

плюс, возможно, советы по улучшению текста для связи скриптов. на самом деле, откуда берется текстовый редактор stackoverflows?

Спасибо!

1 Ответ

0 голосов
/ 26 августа 2011
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/[^\s<]*)?/";

Попробуйте это. Заменено \ S на [^ \ s <] </p>

...