Re: regular expression help
| From: | _lallous | Date: | Tue, 18 Sep 2001 12:13:36 +0000 |
| Subject: | Re: regular expression help | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-67692@lists.php.net to get a copy of this message | ||
This should do (but ofcourse you might want to play a bit with it)
$mem =
'
<A HREF="http://www.mydomain.com/mypage.php">something</a>
is fine
<A HREF="http://www.yourdomain.com/yourpage.php">something</a>
is wrong
<A HREF="http://www.yourdomain.com/yourpage.php">something</a>
is fine<br>
<a href="http://www.lgwm.org/">lgwm</a><br>
<a href="http://www.google.com"
onclick="javascript:alert(\'hello\');">Google!</a>
';
function handler($theTag, $theDomain)
{
if (!strstr($theDomain, "mydomain.com"))
{
$theTag = strstr($theTag, " ");
$theTag = "<a target='_blank'$theTag";
}
return stripslashes($theTag);
}
$re = "/<\s*a\s*href\s*=\s*(['\"])(.+?)\\1[^>]*>/eis";
$t = preg_replace($re, "handler('\\0', '\\2')" ,$mem);
echo $t;
//greetings R&Ze!
"Justin French" <justin@indent.com.au> wrote in message
news:3BA68E3F.BF7C7C08@indent.com.au...
> hi all,
>
> I have some user-supplied text on a content driven site.
> I am allowing <A> tags inside the main text, BUT I want
> any links to external sites (not on the chosen domain)
> to include a ' TARGET="_new" ' element.
>
> So,
>
> <A
> HREF="http://www.mydomain.com/mypage.php">something</a>
> is fine
> <A
> HREF="http://www.yourdomain.com/yourpage.php">something</a>
> is wrong
> <A HREF="http://www.yourdomain.com/yourpage.php"
> TARGET="_new">something</a> is fine
>
> And of course there are all the variants with and without
> the www, and with and without sub directories and pages.
>
> I'[d also like to make sure the dopey people have put a
> close tag in.
>
>
> I've got a few ideas on how it might be done, but I need
> to do it the right way, avoiding slight human errors etc.
>
>
> Has anyone got something written, or can point me in the
> right direction?
>
>
> Justin French