The regular expression pattern modifier "e" is used. I remember when I learned php, the teacher said "e" is used with preg_replace ($ reg, $ replace, $ text ). The replaced content ($ replace) can use the submode in regular $ reg, but the following code returns an error: PHPcode $ reg & quot; (d {2 }) (d {2}) (d {4}) e & quot; $ text regular pattern modifier "e"
I remember when I was learning php, the teacher said "e" is used with preg_replace ($ reg, $ replace, $ text ). The replaced content ($ replace) can use the submode in regular $ reg, but the following code reports an error:
PHP code
$ Reg = "/(\ d {2}) \/(\ d {2}) \/(\ d {4})/e "; $ text = '2014/1/0 to 02/02/2009 '; $ replace = "\$ {3}, \$ {1}"; echo preg_replace ($ reg, $ replace, $ text); // error syntax error, unexpected ','
Delete the pattern modifier e in the regular expression and it will be okay. what is the problem?
What is the role of pattern modifier e?
------ Solution --------------------
PHP code
...... $ Replace = "'\ $ {3}, \ ${1 }'";......
------ Solution --------------------
If the e modifier is used in replace, the string (or the string in the array) is treated as the php code.
------ Solution --------------------
Example
Echo preg_replace ('/(\ d +), (\ d +)/E',' $1 + $ 2', '2, 3 ');
Output 5
------ Solution --------------------
Simply put, PHP regards the $ replace result as an expression calculation.