$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val); 5

preg_replace换成preg_replace_callback应该怎么换functionget_val($val){if(strrpos($val,'[')!==... preg_replace换成preg_replace_callback应该怎么换
function get_val($val)
{
if (strrpos($val, '[') !== false)
{
// $val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);
$val = preg_replace_callback("/\[([^\[\]]*)\]/eis", function($m){ return str_replace('$','\$',$m)}, $val);
}
}

if (strrpos($val, '|') !== false)
{
$moddb = explode('|', $val);
$val = array_shift($moddb);
}

if (empty($val))
{
return '';
}

if (strpos($val, '.$') !== false)
{
$all = explode('.$', $val);

foreach ($all AS $key => $val)
{
$all[$key] = $key == 0 ? $this->make_var($val) : '['. $this->make_var($val) . ']';
}
$p = implode('', $all);
}
else
{
$p = $this->make_var($val);
}

if (!empty($moddb))
{
foreach ($moddb AS $key => $mod)
{
$s = explode(':', $mod);
switch ($s[0])
{
case 'escape':
$s[1] = trim($s[1], '"');
if ($s[1] == 'html')
{
$p = 'htmlspecialchars(' . $p . ')';
}
elseif ($s[1] == 'url')
{
$p = 'urlencode(' . $p . ')';
}
展开
 我来答
851468308qq
2014-09-28 · 超过100用户采纳过TA的回答
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:134万
展开全部
$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);

替换成
$val = preg_replace_callback("/\[([^\[\]]*)\]/is", function ($matches) { return '.'.str_replace('$','\$',$matches[1]);}, $val);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式