preg_replace_callback,删除撇号

时间:2015-11-01 00:37:45

标签: php regex preg-replace-callback

我有以下正则表达式回调,而我遇到的问题是,在最终结果中,'被删除。我该怎么做才能防止这种情况发生?

<?php
$eval = "'$server.REQUEST_URI' == '/user/photos'";

$result = preg_replace_callback('/\'(.+)\'/isU', function($matches){
    $match = $matches[1];
    $find = Object69::find($match);
    return !empty($find) ? $find : $match;
}, $eval);

var_dump($result);

这是$result

的结果
string(29) " /user/photos == /user/photos"

这就是我的期望:

string(29) "'/user/photos' == '/user/photos'"

以下是它找到的数组$matches

array(2) {
  [0]=>
  string(21) "'$server.REQUEST_URI'"
  [1]=>
  string(19) "$server.REQUEST_URI"
}
array(2) {
  [0]=>
  string(14) "'/user/photos'"
  [1]=>
  string(12) "/user/photos"
}

0 个答案:

没有答案