First of all, thanks to everyone who replied! I have several good
suggestions. Here is one that seems to work pretty well, to cover a
multitude of situations:
$msg =
eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a
href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>", $msg);
The only problem is that if a correctly formatted link is already in the
text, then this routine tries to add an additional href and it gets all
messed up. Is there any way that I can use this algorithm and logically
tell it not to do the replace if the anchor tags are already in place? I
can't just search for an anchor <a> tag because there can be several in the
text.
Example:
$myLink = "<a href=\"http://www.mytest.com\" target=\"_n\">Testing</a>";
echo makeLink($myLink);
Creates $msg =
<a href="<a href="http://www.mytest.com"
target="_blank">http://www.mytest.com</a>" target="_n">Testing</a>
Any suggestions?
"Gaylen Fraley" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> I have need to be able to replace text within a string to turn it into a
> link. In other words, I might have a phrase lik:
>
> "blah, blah, blah, please visit my site at www.mysite.com. blah,
> blah,blah".
>
> I need to have the string converted to "blah, blah, blah, please visit my
> site at http://www.mysite.com. blah, blah,blah". The link might have
more
> than 3 sections and won't necessarily end in .com (.net,.com.nl, etc.).
>
> Here is what I have been testing (then I get stuck):
> $myLink = "Please visit my web site at www.mysite.com. You will be glad
you
> did!";
> $repLink = preg_replace("/(www.)/i","<a href=http://\\1",$myLink);
>
> which yields
> Please visit my web site at <a href=http://www.mysite.com. You will be
glad
> you did!
>
> What I would need is
> Please visit my web site at <a
> href=http://www.mysite.com>www.mysite.com</a>. You will be glad you did!
>
> To be truthful, pattern matching is giving me migraines! Programming has
> always been natural to me (32 years of it), but this challenge (eregi,
> preg_match,etc.) is making me crazy! Can someone recommend a good
tutorial
> or book on this subject?
>
> Thanks!
>
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]