TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 04-09-2008, 10:02 AM   #1 (permalink)
The Contributor
 
oMIKEo's Avatar
 
Join Date: Jan 2008
Location: Leeds
Posts: 52
Thanks: 7
oMIKEo is on a distinguished road
Default preg_replace limit results

Hi,

I want to extract the value between [SiteName] from $postText and save it as $s_sitename. Is preg_replace the best way to do this?

Here is what i have so far:

PHP Code:
$pattern[0] = "/\[SiteName\](.*)\[\/SiteName\]/";
$replace[0] = "$1";
$s_sitename preg_replace($pattern$replace$postText); 
At the moment i get the sitename but it then shows all the other text in $postText.

Thanks!
Send a message via MSN to oMIKEo
oMIKEo is offline  
Reply With Quote
Old 04-09-2008, 12:00 PM   #2 (permalink)
La Vida es Sueño
Advanced Programmer Top Contributor 
 
Wildhoney's Avatar
 
Join Date: Sep 2007
Location: Oldham
Posts: 2,280
Thanks: 90
Wildhoney is on a distinguished road
Default

PHP Code:
$postText 'Hello [SiteName]TalkPHP[/SiteName]!';
preg_match_all('~\[SiteName\](.+?)\[/SiteName\]~i'$postText$matches);

echo 
'<pre>';
print_r($matches);
echo 
'</pre>'
__________________
The man who comes back through the Door in the Wall will never be quite the same as the man who went out.
Send a message via AIM to Wildhoney Send a message via MSN to Wildhoney Send a message via Yahoo to Wildhoney
Wildhoney is offline  
Reply With Quote
The Following User Says Thank You to Wildhoney For This Useful Post:
oMIKEo (04-09-2008)
Old 04-09-2008, 02:25 PM   #3 (permalink)
The Contributor
 
oMIKEo's Avatar
 
Join Date: Jan 2008
Location: Leeds
Posts: 52
Thanks: 7
oMIKEo is on a distinguished road
Default

Thanks Wildhoney,

Using your bit of code and 2 mins on php.net i found exactly what i needed :)
Send a message via MSN to oMIKEo
oMIKEo is offline  
Reply With Quote
Old 11-12-2008, 04:07 PM   #4 (permalink)
The Contributor
 
oMIKEo's Avatar
 
Join Date: Jan 2008
Location: Leeds
Posts: 52
Thanks: 7
oMIKEo is on a distinguished road
Default

Noticed a slight problem now, if there is a return in the middle of the 2 SiteNotes it doesnt display anything. Here is what i have so far:

PHP Code:
$postText $row["post_text"];
preg_match_all('~\[SiteNotes\](.+?)\[/SiteNotes\]~i'$postText$s_SiteNotes); 
Any ideas how to make it find matches even if there is a return in the middle?

Thanks,
Mike
Send a message via MSN to oMIKEo
oMIKEo is offline  
Reply With Quote
Old 11-12-2008, 04:11 PM   #5 (permalink)
Moderateur
RegEx Guru PHP Guru Top Contributor Advanced Programmer 
 
Salathe's Avatar
 
Join Date: Apr 2007
Posts: 1,393
Thanks: 5
Salathe is on a distinguished road
Default

Add the s modifier after the i at the end of the pattern: ~\[SiteNotes\](.+?)\[/SiteNotes\]~is This turns on the PCRE_DOTALL flag so that . includes newlines.
Salathe is offline  
Reply With Quote
The Following User Says Thank You to Salathe For This Useful Post:
oMIKEo (11-13-2008)
Old 11-13-2008, 10:38 AM   #6 (permalink)
The Contributor
 
oMIKEo's Avatar
 
Join Date: Jan 2008
Location: Leeds
Posts: 52
Thanks: 7
oMIKEo is on a distinguished road
Default

That worked perfectly - thank you.
Send a message via MSN to oMIKEo
oMIKEo is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 11:26 AM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design