十二12 发表于 2018-12-21 10:50:39

php转义和正则问题

  1.单引号字符串只转义\'和\\,而双引号都转义且替换php变量;运行
  
  结果为
  abc\\$:abc\$
array(1) {   =>   string(1) "\" }
  array(1) {   =>   string(1) "\" }

  array(1) {   =>   string(1) "\" }

  array(1) {   =>   string(1) "\" }
array(1) {   =>   string(1) "$" }
  array(1) {   =>   string(1) "$" }

  array(1) {   =>   string(1) "$" }

  array(1) {   =>   string(1) "$" }
array(1) {   =>   string(2) "\$" }
   array(1) {   =>   string(2) "\$" }

  array(1) {   =>   string(2) "\$" }

   array(1) {   =>   string(2) "\$" }
  分析:preg_match第一个参数为正则匹配模式,先按单引号字符串或双引号字符串转义,然后对结果再按正则转义一次,结果就比较好理解了,如'/\\\\\$/'被字符串转义后为'\\\$',再被正则转义为'\$';如"/\\\\\\\$/"被字符串转义后为'\\\$',再被正则转义为'\$'.
  小结:勤加练习,找出原理才是解决问题的根本!



页: [1]
查看完整版本: php转义和正则问题