Re: Removing link on the fly, but leave link text

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Aug 31, 2010, at 3:06 PM, Ashley Sheridan wrote:

On Tue, 2010-08-31 at 15:01 -0500, Karl DeSaulniers wrote:

On Aug 31, 2010, at 2:32 PM, Ashley Sheridan wrote:

> On Tue, 2010-08-31 at 14:31 -0500, Karl DeSaulniers wrote:
>>
>> Hi,
>> 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.com
>>
>
> strip_tags() will do the job here.
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>


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 Steve
     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


Look at the second argument to strip_tags() which allows you to specify a list of allowable tags. It will do what you want, you just need to look at the manual.

Thanks,
Ash
http://www.ashleysheridan.co.uk




I did and it seemed like the long way around.
I dont need/want to set all the tags that are allowed.
I just need to set the one that isnt.
But thank you, I will take another look at strip_tags().
Best,

Karl DeSaulniers
Design Drumm
http://designdrumm.com


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux