At 19:18 03.06.2003, Jackson Miller said: --------------------[snip]-------------------- >Maybe I should clarify. > >$message = '<p>Visit <a href="http://jaxn.org" target="_top">My personal >site</a> to learn more about me.</p> ><p>Visit <a href="http://memigo.com">memigi</a> to learn about current >events.'; > >What I want is to run a preg_replace to get the following: >Visit My personal site (http://jaxn.org) to learn more about me. > >Visit memigo (http://memigo.com) to learn about current events. > >stripping the HTML is easy, but before I do I want to convert the links.
The loop I posted does exactly that (using square brackets as to your initial requirements). The 3rd parameter of preg_match ($aresult) will be an array that holds the grouped expressions from the regex: [0] - whole string [1] - pre-match (all before <a href) [2] - the URL part of the link [3] - the linked text [4] - postmatch (all after the closing </a>). Within the loop I use this array to modify the HTML code to read (pre-match)#linked-text# [#url#]... which is what you want, after all. > >On Tue, 2003-06-03 at 11:59, Ernest E Vogelsinger wrote: >> At 18:43 03.06.2003, Jackson Miller said: >> --------------------[snip]-------------------- >> >I am trying to create a text only version of an HTML formatted message. >> >I would like to convert all links from: >> ><a href="http://domain.tld.page.ext">link name</a> >> >to: >> >link name [http://domain.tld/page.ext] >> > >> >The problem is that some links may have additional modifiers and onthers >> >may not. >> > >> >I have seen many examples of doing the reverse, but I can't seem to find >> >an example of this. >> > >> >If anyone has done something similar and would like to share, please do. >> --------------------[snip]-------------------- >> >> Sorry - you want the enclosed "link name" >> This should work: >> >> $result = null; >> while >> (preg_match('!(.*)<.*?a.*?href\s*=\s*"(.*?)".*?>(.*?)<\s*/\s*a\s*>(.*)!i', >> $html, $aresult)) { >> $result .= $aresult[1]; >> if ($aresult[2] && $aresult[3]) $result .= $aresult[3] . ' [' . >> $aresult[2] . ']'; >> $html = $aresult[4]; >> } >> $result .= $html; >> >> >> -- >> >O Ernest E. Vogelsinger >> (\) ICQ #13394035 >> ^ http://www.vogelsinger.at/ >> >> --------------------[snip]-------------------- -- >O Ernest E. Vogelsinger (\) ICQ #13394035 ^ http://www.vogelsinger.at/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php