thnks, i didn't write the function so i've now replaced it with something better. ----- Original Message ----- From: "Stuart Dallas" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, July 03, 2002 2:30 PM Subject: Re: [PHP] whats wrong with this function
> On Wednesday, July 3, 2002, 1:47:05 PM, "Adrian Murphy" wrote: > > whats wrong with this. > > it's getting stuck somewhere > > "Somewhere" isn't very helpful. When asking for help be sure to include as much > information as possilble. > > Laying out your code so the structure can be seen... > > <?php > function urls_clickable($string) > { > for($n=0; $n < strlen($string); $n++) > { > if(strtolower($string[$n]) == 'h') > { > if(!strcmp("http://", strtolower($string[$n]) . strtolower($string[$n+1]) . strtolower($string[$n+2]) . strtolower($string[$n+3]) . $string[$n+4] . $string[$n+5] . $string[$n+6])) > { > $startpos = $n; > > while($n < strlen($string) && eregi("[a-z0-9\.\:\?\/\~\-\_\&\=\%\+\'\"]", $string[$n])) > $n++; > > if(!eregi("[a-z0-9]", $string[$n-1])) > $n--; > > $link = substr($string, $startpos, ($n-$startpos)); > $link = $link; > $string_tmp = $string; > $string = substr($string_tmp, 0, $startpos); > $string .= "<a href=\"$link\" target=\"_blank\">$link</a>"; > $string .= substr($string_tmp, $n, strlen($string_tmp)); > $n = $n + 15; > } > } > } > return $string; > } > > $text = "http://www.somewhere.org <br><br>"; > echo urls_clickable($text); > ?> > > It's getting stuck because you're moving the goalposts. It's a very bad idea to > base a loop on a variable that is changed within the loop. I suggest you loop > through one string while building a second string as the return value. > > On the other hand, I seem to remember seeing a regex posted on this list > recently that did exactly this. I suggest you search the archives for it > because it would save you a lot of hassle. > > -- > Stuart > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php