plain2click()
26
Nov1
Nov1
Nav ko te gari rakstīt. Nereti lietotāja ievadītajā tekstā nākas meklēt URL saites un pārtaisīt tās klikšķināmas. Lūk, strādājošs risinājums. Funkcija (otra tikai palīdz pirmajai
), kas tekstā sameklēs linkus un attiecīgi tos pārveidos par klikojamām saitēm vai e-pasta saitēm. Ja klikojamā saite būs links uz Youtube video, tad tā saite tiks pārvērsta par embed’u.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function plain2click($str){ $str = preg_replace_callback("/(http(s)?\:\/\/|www\.)[a-z0-9\-\.]+\.[a-z]{2,4}(\/[a-z0-9\-\?=_&\+%#@\.\/]*)?/i", 'plain2clickCallback', $str); $str = preg_replace("/[a-z0-9\-\._]+@[a-z0-9\-\.]+\.[a-z]{2,4}/i", '<a href="mailto:$0">$0</a>', $str); return $str; } function plain2clickCallback($matches){ $ymatches = array(); if(preg_match("/http\:\/\/www\.youtube\.com\/watch\?v=([a-z0-9\-_]+)(&feature=[a-z]+)?/i", $matches[0], $ymatches)){ return '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/'.$ymatches[1].'&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$ymatches[1].'&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>'; } $url = str_replace(array('http://', 'https://'), '', $matches[0]); return '<a rel="nofollow" href="http'.$matches[2].'://'.$url.'" onclick="window.open(this.href); return false;">'.$matches[0].'</a>'; } |
Ja kaut kas nestrādā vai strādā nepareizi, tad padod ziņu komentāros, man gan līdz šim viss bijis ok.
01:03 on February 23rd, 2010
un kā ar IP adresēm kā linkiem?
http://127.0.0.1/ – ?