Url biçimlendirme (çapa için www.biralan.tld) ​​için regex

4 Cevap php

Şu anda küçük bir tarayıcı-tabanlı Twitter Widget geliştiriyorum.

Şu anda, ben URL'leri işe alma ile şaşırıp. Ben biraz (- zor bir nasıl bir dize parçaları almak için biliyorum, ama bu bir) acemi, bu regex geliyor değilim.

Yani, ben arayacağı / değiştirme düzenli ifade gerekiyor

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

Ile / http:// olmadan, tercihen.

Herhangi bir tavsiye açığız. Teşekkürler.

4 Cevap

Bu bende ne kadar olduğunu:

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

Bu www denetler. Başlangıçta, olmayan herhangi witespace karakter ve üst düzey etki alanı (2 ya da üç karakter) de.

Ben Regexes karşı hiç gitmiyor savaşta, ben onları sevmiyorum. Yani, bunun yerine böyle yapardım yapın:

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

Çok daha iyi: D

http://stackoverflow.com/questions/206059/php-validation-regex-for-url: Ben bu aradığınız tam olarak ne olduğuna inanıyorum

URL'lerin çıkarılmasına ilişkin bazı bilgiler: http://stackoverflow.com/questions/910912/extract-urls-from-text-in-php

Try twitter-text-php. Bu resmi Twitter kodundan PHP taşıdık.

README dosyasından:

$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;