php dwt foreach,ecshop在dwt模板中和lbi中输入数组详情的方法 ecshop模板中输出数组的方法...

/**

* 处理smarty标签中的变量标签

*

* @access public

* @param string $val

*

* @return bool

*/

function get_val($val)

{

if (strrpos($val, '[') !== false)

{

$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $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 . ')';

}

elseif ($s[1] == 'decode_url')

{

$p = 'urldecode(' . $p . ')';

}

elseif ($s[1] == 'quotes')

{

$p = 'addslashes(' . $p . ')';

}

elseif ($s[1] == 'u8_url')

{

if (EC_CHARSET != 'utf-8')

{

$p = 'urlencode(ecs_iconv("' . EC_CHARSET . '", "utf-8",' . $p . '))';

}

else

{

$p = 'urlencode(' . $p . ')';

}

}

else

{

$p = 'htmlspecialchars(' . $p . ')';

}

break;

case 'nl2br':

$p = 'nl2br(' . $p . ')';

break;

case 'default':

$s[1] = $s[1]{0} == '$' ? $this->get_val(substr($s[1], 1)) : "'$s[1]'";

$p = 'empty(' . $p . ') ? ' . $s[1] . ' : ' . $p;

break;

case 'truncate':

$p = 'sub_str(' . $p . ",$s[1])";

break;

case 'strip_tags':

$p = 'strip_tags(' . $p . ')';

break;

case 'print_r':

$p='print_r('.$p.',true)';

break;

case 'var_export':

$p='var_export('.$p.',true)';

break;

default:

# code...

break;

}

}

}

return $p;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值