Я взял функцию ExBB "seekHttp" и переделал её (для своей програмки надо было
CODE:
function wrapit($text, $lim_on_word) {
$pattern=array(
"#([\t\r\n ])([a-z0-9]+?){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i",
"#([\t\r\n ])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i",
"#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i");
$replacement=array(
'\1href="\2://\3"|>|\2://\3|>|',
'\1href="http://\2.\3"|>|\2.\3|>|',
"\\1href=\"mailto:\\2@\\3\"|>|\\2@\\3|>|");
$ret = ' ' . $text;
$hyperlinkedText=preg_replace($pattern, $replacement, $ret);
$hyperlinkedText = substr($hyperlinkedText, 1);
$new_base = explode(' ', $hyperlinkedText);
foreach ( $new_base as $part ) {
if (preg_match("|>|", $part)) {
$data = explode("|>|", $part);
$work = $data[1];
if ( strlen($work) > $lim_on_word ) {
for ($x=0;$x<=($lim_on_word/4)*3;$x++) {
$new_w .= $work[$x];
}
for ($x=strlen($work)-$lim_on_word/4;$x<=strlen($work);$x++) {
$new_s .= $work[$x];
}
$part = '<a '.$data[0].'>'.$new_w.'...'.$new_s.'</a>';
} #endif
else { $part = '<a '.$data[1].' target=_blank>'.$data[0].'</a>'; }
} #end if preg_match
else {
if ( strlen($part) > $lim_on_word ) {
$part = wordwrap($part, $lim_on_word, ' ', 1);
}
}
$res_txt .= $part.' ';
} #end foreach
return $res_txt;
}
Параметр $lim_on_word можете заменить любой цифрой...
Вроде коряво, но работает! )))
|