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