by Spack » Tue May 03, 2005 1:14 pm
by Warmonger » Tue May 03, 2005 4:37 pm
by Spack » Tue May 03, 2005 5:02 pm
function mywordwrap($str, $max = 120, $break = '<br /> ') { // create array by deviding at each occurrence of "<a" $arr = explode('<a', $str); // break up long words in $arr[0] since // it will never contain a hyberlink $arr[0] = preg_replace('/([^\s]{'.$max.'})/i',"$1$break",$arr[0]); // run loop to devide remaining elements for($i = 1; $i < count($arr); $i++) { // devide each element in $arr at each occurrence of "</a>" $arr2 = explode('</a>', $arr[$i]); //MOD BY SPACK TO BREAK LINKED TEXT //split first part on > $arr3 = explode('>',$arr2[0]); //break up long link text which will be $arr3[1] $arr3[1] = preg_replace('/([^\s]{'.$max.'})/i',"$1$break",$arr3[1]); //rejoin to recreate $arr2[0] $arr2[0] = join('>',$arr3); //END MOD // break up long words in $arr2 that does not // contain hyberlinks $arr2[1] = preg_replace('/([^\s]{'.$max.'})/i',"$1$break",$arr2[1]); // rejoin $arr2 and assign as element in $arr $arr[$i] = join('</a>', $arr2); } // rejoin $arr to string and return it return join('<a', $arr); }
Return to The Site