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

From: Date: Wed, 01 Sep 2010 03:48:57 +0000
Subject: Re: Re: Removing link on the fly, but leave link text
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-307794@lists.php.net to get a copy of this message
Ashley Sheridan wrote:
On Tue, 2010-08-31 at 17:15 -0300, Jo?o C?ndido de Souza Neto wrote:
Theres an eror. The correct is: $pattern = array(
    "/<a [^>]>/",
    "/</a>/"
); $text = preg_replace($pattern, "", $text); -- Joo Cndido de Souza Neto ""Joo Cndido de Souza Neto"" <joao@consultorweb.cnt.br> escreveu na mensagem news:D0.73.48953.EE16D7C4@pb1.pair.com...
Try this: $pattern = array( "/<a [^>]/", "/</a>/" ); preg_replace($pattern, "", $text); -- Joo Cndido de Souza Neto "Karl DeSaulniers" <karl@designdrumm.com> escreveu na mensagem news:007BC8E1-B2C8-4DD5-9D18-EB07B0D55C0E@designdrumm.com...
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
Regular expressions are evil when used like this. Consider the following valid HTML: <a href="math_operators.php" title="The > Operator">The &gt; Operator</a> The HTML is perfectly valid, but the regex will break because it "see's" the end of the tag prematurely from the > inside the title attribute value. However, if the HTML is going to be a very small subset in which you will always know this sort of thing won't happen, then you could use the regex. Thanks, Ash http://www.ashleysheridan.co.uk
Here is the trail that I just went down. http://www.w3.org/TR/html401/struct/links.html lead me to here http://www.w3.org/TR/html401/struct/global.html#adef-title which lead me to here http://www.w3.org/TR/html401/types.html#type-text which lead me to here http://www.w3.org/TR/html401/sgml/dtd.html#Text which lead me to here http://www.w3.org/TR/html401/types.html#type-cdata To my final conclusion that values of attributes, although it isn't required, should be encoded and conversely will be decoded by the client. So, not to say that you are wrong, but I would suggest that it might be better to explain that the example you suggested should have been written in the following way instead. <a href="math_operators.php" title="The &gt; Operator">The &gt; Operator</a> All text that gets sent to the client, that has nothing to do with layout, should be ran through some type of cleaning & encoding method before being sent to the client. Just my 2pennies... Jim Lucas

« previous php.general (#307794) next »