Jump to content

regex help, preg_replace


mapunk

Recommended Posts

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 notes
on user two go
here
[username=User3]
These are notes
that I have kept for
this
particular user
[/quote]


Link to comment
Share on other sites

[code]
<pre>
<?php

$data = <<<DATA
[username=User1]
Some notes on this user go here
[username=User2]
More notes
on user two go
here
[username=User3]
These are notes
that I have kept for
this
particular 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]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.