Php ayrıştırma bağlantılar / e-postalar

2 Cevap php

Her türlü bağlantıları dönüştüren basit bir pasajı olup olmadığını merak ediyorum:

http://www.cnn.com to <a href="http://www.cnn.com">http://www.cnn.com</a>
cnn.com to <a href="http://www.cnn.com">cnn.com</a>
www.cnn.com to <a href="http://www.cnn.com">www.cnn.com</a>
abc@def.com to  to <a href="mailto:mailto:abc@def.com">mailto:abc@def.com</a>

Ben herhangi bir PHP5 özel kitaplığını kullanmak istemiyorum.

Zaman ayırdığınız için teşekkür ederiz.

UPDATE ben onu dönüştürmek istediklerini yukarıdaki metni güncelledik. Href etiket ve metin halinde 2 ve 3 için farklı olduğunu unutmayınız.

UPDATE2 Hows gmail sohbet bunu yapar? Onlarınki oldukça akıllı ve tek gerçek etki adları için çalışıyor. örneğin a.ly çalışıyor ama a.cb çalışmıyor.

2 Cevap

Bu deneyin. (Için bağlantılar değil e-posta)

$newTweet = preg_replace('!http://([a-zA-Z0-9./-]+[a-zA-Z0-9/-])!i', '<a href="\\0" target="_blank">\\0</a>', $tweet->text);

İşte e-posta parçacığını bulunuyor:

$email = "abc@def.com";

$pos = strrpos($email, "@");
if (!$pos === false) {
    // This is an email address!
    $email .= "mailto:" . $email;
}

Tam olarak ne bağlantıları ile yapmak için arıyoruz? www veya http şerit? Gerekirse veya herhangi bir link http://www ekleyebilir?