js的正则如何转换成php的?

以下是js的函数:

function preg_quote (str, delimiter)  {
  return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&');
}

我要转换成php的,以下是我写的

function preg_quote($str, $delimiter = '')  {
  return preg_replace('/[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' . $delimiter . '-]/i', '\\$&', $str);
}

运行 echo preg_quote('[b]');
输出结果是$&b$&
不对,正确的输出是 \[b\]
求解,thanks!

  return preg_replace('/[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' . $delimiter . '-]/i', '\\\\$0', $str);

如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮