Replace href= with alink

Any questions involving matching text strings to patterns - the pattern is called a "regular expression."

Moderator: General Moderators

Post Reply
User avatar
hawleyjr
BeerMod
Posts: 2170
Joined: Tue Jan 13, 2004 4:58 pm
Location: Jax FL & Spokane WA USA

Replace href= with alink

Post by hawleyjr »

My regex is a little rusty...lol, very rusty.

Here is what I'm trying to do:

I have a long string of text with links embedded.

Code: Select all

$myText = 'Lorem ipsum blandit eligendi gubergren <a href="http://example.com">ea his, ad rebum</a> facer cum. Est iudico fierent no. Tantas appetere scribentur quo id, ne eius omittantur nec. Duo at falli comprehensam. Et impedit nostrum usu, id vel timeam tincidunt intellegat.

Sint meis maiorum vix et, facilisi intellegat interesset ad nec. Quo mazim ornatus signiferumque at. Quo ei copiosae nominati, in summo debet recusabo quo. An has nullam nominavi fabellas, te ubique epicurei vix, eleifend aliquando <a href="http://example.com">http://www.example.com</a>at vel. Eam et ponderum perpetua maiestatis.';
I need to replace the links with this:

Code: Select all

<c:alink:http://example.com>Text in the link</c:alink>
So the above paragraph would like like this when complete:

Code: Select all

$myText = 'Lorem ipsum blandit eligendi gubergren <c:alink:http://example.com>ea his, ad rebum</c:alink>  facer cum. Est iudico fierent no. Tantas appetere scribentur quo id, ne eius omittantur nec. Duo at falli comprehensam. Et impedit nostrum usu, id vel timeam tincidunt intellegat.

Sint meis maiorum vix et, facilisi intellegat interesset ad nec. Quo mazim ornatus signiferumque at. Quo ei copiosae nominati, in summo debet recusabo quo. An has nullam nominavi fabellas, te ubique epicurei vix, eleifend aliquando <c:alink:http://example.com>http://example.com</c:alink>at vel. Eam et ponderum perpetua maiestatis.';
Thanks for the help.
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

viewtopic.php?t=36656 could be of interest.
User avatar
John Cartwright
Site Admin
Posts: 11470
Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:

Post by John Cartwright »

Code: Select all

#<a href="([^"])">(.*?)</a>#i
my attempt :D.. I suck btw
User avatar
hawleyjr
BeerMod
Posts: 2170
Joined: Tue Jan 13, 2004 4:58 pm
Location: Jax FL & Spokane WA USA

Post by hawleyjr »

Thanks Feyd for the pointer...

Here is what I did and as far as I can tell it works as it should:

Code: Select all

$myText = 'Lorem ipsum blandit eligendi gubergren <a href="http://example.com">ea his, ad rebum</a> facer cum. Est iudico fierent no. Tantas appetere scribentur quo id, ne eius omittantur nec. Duo at falli comprehensam. Et impedit nostrum usu, id vel timeam tincidunt intellegat.

Sint meis maiorum vix et, facilisi intellegat interesset ad nec. Quo mazim ornatus signiferumque at. Quo ei copiosae nominati, in summo debet recusabo quo. An has nullam nominavi fabellas, te ubique epicurei vix, eleifend aliquando <a href="http://example.com">http://www.example.com</a>at vel. Eam et ponderum perpetua maiestatis.'; 

$search = "/<a href=(['\"])(.*?)$highlight(.*?)['\"](.*?)>(.*?)<\/a>/i";

$str = preg_replace($search, "<c:alink:$2$3>$5</c:alink>", $src);
The Output:

Code: Select all

Lorem ipsum blandit eligendi gubergren <c:alink:http://example.com>ea his, ad rebum</c:alink> facer cum. Est iudico fierent no. Tantas appetere scribentur quo id, ne eius omittantur nec. Duo at falli comprehensam. Et impedit nostrum usu, id vel timeam tincidunt intellegat.

Sint meis maiorum vix et, facilisi intellegat interesset ad nec. Quo mazim ornatus signiferumque at. Quo ei copiosae nominati, in summo debet recusabo quo. An has nullam nominavi fabellas, te ubique epicurei vix, eleifend aliquando <c:alink:http://example.com>http://www.example.com</c:alink>at vel. Eam et ponderum perpetua maiestatis.
Post Reply