これは私が、私はあなたが$ 1無視することができ、ソース
function urls2linksComplex($text,$schemes = 'normal',$tlds = 'normal'){
//"urls2links - Complex" function by mBread @ SwirlDrop/m-bread web labs (http://m-bread.com/lab/php/urls2linksComplex)
//This functon is free to distribute and modify, but please leave these comments intact.
if($schemes=='normal'){
$scheme = '(?:[Hh][Tt]|[Ff])[Tt][Pp][Ss]?';
}elseif(is_array($schemes)){
$scheme = '(?:'.implode('|',$schemes).')';
}elseif(is_string($schemes)){
$scheme = $schemes;
}else{
$scheme = '[a-zA-Z][a-zA-Z0-9\-+.]*';
}
; //EoIF
if($tlds=='normal'){
$tldExclude = array(
'doc','xls','txt','rtf','jpeg','jpg','gif','png','exe','html','htm','zip','gz','scr','rar','php','php3','inc','ico','bmp','asp','jsp','dat','lnk','cab','csv','xml','xsl','xsd','svg','psp','psd','pdf','bak','wav','mp3','m4v','midi','wmv','wma','js','css','ppt','pps','mdb');
}elseif(is_array($tlds)){
$tldExclude = $tlds;
}elseif(is_string($tlds)){
$tldExclude = array(
$tlds);
}else{
$tldExclude = array();
}
; //EoIF
$userinfo = '(?:(?:[a-zA-Z0-9\-._~!$&\'()*+,;=:]|%[0-9A-Fa-f]{2})*@)?';
$decOctet = '(?:[0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
$ipv4 = '(?:'.$decOctet.'\.){3}'.$decOctet;
$regname = '(?:(?:[0-9A-Za-z][0-9A-Za-z\-]*[0-9A-Za-z]|[0-9A-Za-z])\.)+[a-zA-Z]{2,6}';
$host = '('.$ipv4.'|'.$regname.')';
$port = '(?::[0-9]*)?';
$authority = '((?://)?'.$userinfo.$host.$port.')';
$path = '(?:/(?:[a-zA-Z0-9\-._~!$&\'()*+,;=:]|%[0-9A-Fa-f]{2})*?)*';
$query = '(?:\?(?:[a-zA-Z0-9\-._~!$&\'()*+,;=:/?]|%[0-9A-Fa-f]{2})*?)?';
$fragment = '(?:#(?:[a-zA-Z0-9\-._~!$&\'()*+,;=:/?]|%[0-9A-Fa-f]{2})*?)?';
$pattern = '\b(('.$scheme.'\:)?'.$authority.$path.$query.$fragment.')($|[^\w/][<\s]|[<\s]|[^\w/]$)';
$replacement = '(!in_array(substr(\'$4\', strrpos(\'$4\', \'.\')+1), $tldExclude))?\'<a href="\'.((\'$2\' == \'\')?((strpos(\'$3\', \'@\'))?\'mailto:$1\':\'http://$1\'):\'$1\').\'">$1</a>$5\':\'$0\'';
//$pattern=strip_tags($pattern);
$text = preg_replace('`'.$pattern.'`e',$replacement,$text);
$text = preg_replace('`<a href="(.*)"><a href="(.*)">`','<a href="$1">',$text);
$text = str_replace('</a></a>','</a>',$text);
return $text;
}
こんにちはどうしたの?どのような値は$ 1と$ strです - ありがとう – aurel
^^実用的な例を示すように編集しました –
美しいです – aurel