mapunk Posted August 21, 2006 Share Posted August 21, 2006 I've tried working on this for a pretty long time, but I'm new to regular exprsesions so I really have no idea how to do this.Let's say I have a string like the one below. I have an array of the usernames...Let's call it $user_array. How would I go about searching for, and replacing the string under each user with a string called $replacement? Or better yet, how would I just capture the text for each user using preg_match? It needs to be able to capture multiple lines and any character thrown it's way. I don't need the whole logic behind it, just the preg_replace/preg_match statement. Thanks guys[quote][username=User1]Some notes on this user go here[username=User2]More noteson user two go here[username=User3]These are notesthat I have kept forthisparticular user[/quote] Quote Link to comment Share on other sites More sharing options...
effigy Posted August 21, 2006 Share Posted August 21, 2006 [code]<pre><?php $data = <<<DATA[username=User1]Some notes on this user go here[username=User2]More noteson user two gohere[username=User3]These are notesthat I have kept forthisparticular user DATA; $data_array = explode("\n", $data); ### The above can be handled with the file function. ### The name. $user = ''; ### The data. $user_data = ''; ### The result. $result = array(); foreach ($data_array as $piece) { ### If a user name is found... if (preg_match('/\[username=(.+?)\]/',$piece, $matches)) { ### ...and there is data... if ($user_data) { ### ...add the user to the array with their data... $result[$user] = $user_data; ### ...and empty the data. $user_data = ''; } ### ...set the new user that was found. $user = $matches[1]; } ### No user name was found, tack onto the data. else { $user_data .= $piece; } } ### "Flush." $result[$user] = $user_data; print_r($result);?></pre>[/code] Quote Link to comment Share on other sites More sharing options...
mapunk Posted August 21, 2006 Author Share Posted August 21, 2006 Thanks a lot, I'll check it out and let you know how it goes :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.