Jason is right.   $v = preg_replace('/\$[0-9]/', '\\\\$0', $v);Should work. $12 
to him. To also protect against \\12.50in your data the best I can do is 
follows./jm<?php   # you need this while developing!error_reporting(E_ALL);  # 
init test vars$v='One $, $12.50 \\12.50 \\\\12.50 \1';    print $v;  
$ff='something';$newpage['text']='text with (:something: value:) embedded';  # 
the essential bit $v=str_replace(array('\\','$'),array('\\\\','\$'),$v);if 
(strpos($newpage['text'], "(:$ff: ") !== false)  # not needed at all, 
complicates your code (Kathryn is your friend)  $newpage['text'] = 
preg_replace("/\\(:$ff: (.*?):\\)/s", "(:$ff: $v:)", $newpage['text'], 1);    
print " <br/>\n$newpage[text]";  exit;From: [EMAIL PROTECTED]: [EMAIL 
PROTECTED]; [EMAIL PROTECTED]: RE: [pmwiki-devel] $12.50 -> .50 var 
problemDate: Tue, 10 Apr 2007 13:15:30 +0000






I'm now busy resolving your problem. Before starting there are a few problems 
with your code upfront:> if (strpos($newpage[text], "(:$ff: ") == true) 
$newpage['text'] =  preg_replace(>            '/\\(:'.$ff.': (.*?):\\)/s',  
"(:$ff: $v:)",  $newpage['text'], 1);1. Do this in anything you are developing: 
    error_reporting(E_ALL);    # let PHP help you2. strpos returns either false 
or a number. Don't test for 'true', test for ' !== false ' (note this isn't ' 
!=false ' )strpos($newpage[text], "(:$ff: ") == true    3. Use quotes as in 
$newpage['text']  (point 1 would have helped you here). Now getting to the 
regex part. Seems like you have to preg_quote()/jm > > On 4/9/07,  The Editor  
wrote:> The following is causing me huge problems.  Been working on it for> 
hours--and seem to have finally narrowed it down to here...> > if 
(strpos($newpage[text], "(:$ff: ") == true) $newpage['text'] =  preg_replace(>  
          '/\\(:'.$ff.': (.*?):\\)/s',  "(:$ff: $v:)",  $newpage['text'], 1);> 
> It's part of a routine that checks to tell if a certain (hidden) text> 
variable exists and if it does, it replaces the current value with the> new 
value ($v).> > All works fine generally--except when $v has a $ in it it thinks 
its a> variable that doesn't exist.  So $12.50 gets changed to .50.  And that> 
throws me off.> > Can anyone suggest a fix for this bedeviling little bug...> > 
Cheers,> Dan> > PS.  I'm pretty sure $ff and $v are the correct values going 
into this> process. Just missing the $12!> > 
_______________________________________________> pmwiki-devel mailing list> 
[email protected]> 
http://www.pmichaud.com/mailman/listinfo/pmwiki-devel> 
_________________________________________________________________> It’s tax 
season, make sure to follow these few simple tips > 
http://articles.moneycentral.msn.com/Taxes/PreparationTips/PreparationTips.aspx?icid=WLMartaglineLive
 Search Maps – find all the local information you need, right when you need it. 
Find it!

_________________________________________________________________
Your friends are close to you. Keep them that way.
http://spaces.live.com/signup.aspx
_______________________________________________
pmwiki-devel mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-devel

Reply via email to