Regex для форматирования URL (www.domain.tld к якорям) - PullRequest
0 голосов
/ 20 мая 2010

В настоящее время я разрабатываю небольшой браузерный виджет Twitter.

В настоящее время я не могу заставить работать URL-адреса. Я новичок, когда дело доходит до регулярных выражений (я знаю, как получить части строки, но эта - жесткая).

Итак, мне нужно регулярное выражение, которое будет искать / заменять

www.domain.tld -> <a href="http://www.domain.tld">http://www.domain.tld</a>

С / без http://, предпочтительно.

Любой совет приветствуется. Спасибо.

Ответы [ 4 ]

0 голосов
/ 20 мая 2010

Попробуйте twitter-text-php . Он портирован на PHP из официального кода Twitter.

Из файла README:

$autolinker = new Twitter_Autolink();
$html = $autolinker->autolink("Tweet mentioning @mikenz and refuring to his list @mikeNZ/sports and website http://mikenz.geek.nz");
echo $html;
0 голосов
/ 20 мая 2010

Я постоянно воюю против RegExes, они мне не нравятся Итак, я бы сделал это так:

function get_domain_from_anchor($anchor, $delimiter = '"') {
    return substr(strstr(strstr($anchor, $delimiter), $delimiter.'>', true), 8);
}

echo get_domain_from_anchor('<a href="http://www.domain.net">http://www.domain.net</a>');

// OUTPUTS: www.domain.net

Намного лучше: D

0 голосов
/ 20 мая 2010

Я считаю, что это именно то, что вы ищете: Проверка PHP / регулярное выражение для URL

Еще немного информации относительно извлечения URL-адресов: Извлечение URL-адресов из текста в PHP

0 голосов
/ 20 мая 2010

Вот как далеко у меня:

www\.(?:\S*)\.(?:\S{2,3})

Проверяет www. вначале любые не-знаковые символы и домен верхнего уровня (2 или три символа)

...