regex - What Delimiter to use for preg_replace in PHP (replace working outside of PHP but not inside) -


myself , team stuck on one, have following code.

$text = "lorem ipsum dolor sit amet, consectetur adipiscing elit. ut bibendum augue eu arcu mollis cursus. curabitur nec purus ipsum. fusce ut erat leo, vitae malesuada lacus. quisque varius gravida justo ut aliquam. integer accumsan, ante non volutpat semper, orci sem luctus odio, sit amet convallis odio justo id nisl. nunc sed lacus nisi, quis accumsan massa. donec ante enim, fermentum sit amet placerat nec, eleifend elementum nibh  [[blogimage_20090303011757.jpg||480]]  dolor nec est. pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. etiam accumsan blandit purus eget vestibulum. nullam neque sem, suscipit sit amet mattis eu, imperdiet quis ligula. integer aliquam dapibus gravida. pellentesque ultrices sapien orci. suspendisse @ eros non dolor accumsan cursus mattis nec justo.  [[blogimage_20090303011819.jpg||480]]  aenean cursus lacinia arcu vitae malesuada. fusce fermentum enim sit amet elit fermentum @ consectetur ante vulputate. aliquam sagittis nulla id magna facilisis tempus. suspendisse eget feugiat libero. pellentesque non lorem sem, eu posuere velit. nulla id nulla ligula.  [[blogimage_20090303011842.jpg||480]] ..... etc"; $pat  = "\[\[(.*)\|\|(.*)\]\]"; $mat  = '<img src="/path/to/file/imgs/$1" width="$2px" />'; $text = preg_replace($pat , $mat, $text); 

what want convert [[imagefile||size]] image tag using structure in $mat. match works in regexr (an adobe air program), , verious javascript online testers

the error i'm getting :-

message: preg_replace() [function.preg-replace]: delimiter must not alphanumeric or backslash

so if add dilimiter, such as...

$pat = "^[[(.)\|\|(.)]]^";

then match stops working no longer errors.

any appreciated.

preg_replace() requires delimiter character:

preg_replace("/$pat/" ... 

traditionally it's forward slash, can character - when need forward slash in regex can resort character.

this flexibility allows express "/http:\/\/foo\/bar\//" ("leaning toothpick syndrome") "!http://foo/bar/!".

the delimiter character necessary separate regex regex flags (a.k.a. "modifiers"), example:

preg_replace("/$pat/i" ... 

…this uses i flag declare case-insensitive regex.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -