Re: Removing link on the fly, but leave link text
| From: | Karl DeSaulniers | Date: | Tue, 31 Aug 2010 20:01:59 +0000 |
| Subject: | Re: Removing link on the fly, but leave link text | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-307784@lists.php.net to get a copy of this message | ||
On Aug 31, 2010, at 2:32 PM, Ashley Sheridan wrote:
On Tue, 2010-08-31 at 14:31 -0500, Karl DeSaulniers wrote:Hi Ash, I tried that, but it did not work. I do not want it to strip all tags, just the <a href=""></a>. so if there was a <p> or <br />. I don't want those removed. There is more text than just what I posted. This is what I am trying currently. This is someones code from a forum that I am trying to adopt. //CODE start function strip_only($str, $tags) { // Thanks SteveHi, Say I have some text. $text = 'You can logon here: <a href="http://website.com/shop/ index.php?username='.$username.'">http://website.com/shop/index.php? username='.$username.'</a>. This link will take you to your web browser to login.'.$eol; I want to be able to strip the "<a href="http://website.com/shop/ index.php?username='.$username.'">" and </a>. Leaving just the http://website.com/shop/index.php?username='. $username.' text, so it would end up like. $text = 'You can logon here: http://website.com/shop/index.php? username='.$username.'. This link will take you to your web browser to login.'.$eol; I have tried MANY different ways and have no success. Can anyone help me? TIA Karl DeSaulniers Design Drumm http://designdrumm.comstrip_tags() will do the job here. Thanks, Ash http://www.ashleysheridan.co.uk
if(!is_array($tags)) {
$tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
if(end($tags) == '') array_pop($tags);
}
foreach($tags as $tag) $str = preg_replace('#</?'.$tag.'[^>]*>#is', '', $str);
return $str;
}
$str = '<p style="text-align:center">Paragraph</p><strong>Bold</strong><br/><span style="color:red">Red</span><h1>Header</h1>';
echo strip_only($str, array('p', 'h1'));
echo strip_only($str, '<p><h1>');
//CODE end
I was using it like so.
$text = strip_only($text, array('a'));
or
$text = strip_only($text, '<a>');
But got my results back like:
'You can logon here: href="http://website.com/shop/
index.php?username='.$username.'">http://website.com/shop/index.php?
username='.$username.'. This link will take you to your web
browser to login.'.$eol;
uugh..
Karl DeSaulniers
Design Drumm
http://designdrumm.com