RE: [PHP] Can I do this in a single match/replace?
-Original Message- From: Paul Halliday [mailto:paul.halli...@gmail.com] Sent: 28 June 2012 02:27 Using preg_match and this pattern I can get the refs: $pattern = '\reference:url,([^;]+;)\'; which gives me: $matches[0] = www.ndmp.org/download/sdk_v4/draft-skardal-ndmp4- 04.txt $matches[1] = doc.emergingthreats.net/bin/view/Main/2002068 now what I would like to do is replace inline adding a href=http://; . $matches[n] . . $matches[n] . /a Can this be done or do I need to say loop through matches (there can be none or many) and do a str_replace. $new_string = preg_replace($pattern, 'a href=http://$1;$1/a' , $string); should do it -- don't *think* you need any pesky \ escapes in the replacement, but could be wrong on that one, so please suck it and see... Cheers! Mike -- Mike Ford, Electronic Information Developer, Libraries and Learning Innovation, Portland PD507, City Campus, Leeds Metropolitan University, Portland Way, LEEDS, LS1 3HE, United Kingdom E: m.f...@leedsmet.ac.uk T: +44 113 812 4730 To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Can I do this in a single match/replace?
On 6/27/2012 6:26 PM, Paul Halliday wrote: I have lines that look like (I added intentional line breaks): alert tcp $HOME_NET 1 - $EXTERNAL_NET any (msg:ET EXPLOIT NDMP Notify Connect - Possible Backup Exec Remote Agent Recon; flow:established,from_server; content:|00 00 05 02|; offset:16; depth:20; content: |00 00 00 03|; offset: 28; depth: 32; reference:url,www.ndmp.org/download/sdk_v4/draft-skardal-ndmp4-04.txt; reference:url,doc.emergingthreats.net/bin/view/Main/2002068; classtype:attempted-recon; sid:2002068; rev:8;) So within this there are reference urls that I would like to turn into links so that when they are rendered they can be clicked on. Using preg_match and this pattern I can get the refs: $pattern = '\reference:url,([^;]+;)\'; which gives me: $matches[0] = www.ndmp.org/download/sdk_v4/draft-skardal-ndmp4-04.txt $matches[1] = doc.emergingthreats.net/bin/view/Main/2002068 now what I would like to do is replace inline adding a href=http://; . $matches[n] . . $matches[n] . /a Can this be done or do I need to say loop through matches (there can be none or many) and do a str_replace. Thoughts? Other ideas? Thanks. Look into preg_replace, with the e modifier. It allows you to run php code for every replace. Chris -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php