Jump to content
php.lv forumi

Ietagot saites tekstā


pilots

Recommended Posts

<?php
$in=array('`((?:https?|ftp)://\S+[[:alnum:]]/?)`si', '`((?<!//)(www\.\S+[[:alnum:]]/?))`si');
$out=array('<a href="$1" rel="nofollow">$1</a> ', '<a href="http://$1" rel="nofollow">$1</a>');
$txt = preg_replace($in,$out,$txt);
?>

 

Vai šāds variants ir ok vai tomēr ir kādi mīnusi, kas būtu labojami?

Link to comment
Share on other sites

Man uz pc metājas, kas tāds. Drošvien viņa blogā ar ir.

// (c) defektologos.lv
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();
$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>';
}

Link to comment
Share on other sites

Redz, lieta tāda, ka es no šiem preg_replace neko lāga nesaprotu, tad man tā grūtāk saprast, kurš variants labāks tieši tai php ziņā. (mailus nevajag konvertēt, jaunus logus ar nevajag)

 

Vai mans patreizējais variants ir uzlabojams vai ir ok kā ir.. būtu interesanti uzzināt, ja lasa kāds, kurš šo lietu saprot.

Link to comment
Share on other sites

Pirmajā postā redzamais regex izskatās bišķ par īsu, jo matcho tikai uz protokolu un domainu, bez path un GET parametriem. Protams, ja tas ir tas, kas tev vajadzīgs, tad der :)

Arī ja nav teorētisku zināšanu, tad vienmēr var patestēt kā dabā uzvedās konkrētais kods un izdomāt pats vai būs gana labs :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...