php引号变量_PHP解释单引号里边的变量

众所周知,PHP有一个比较特殊的特点,就是可以将变量写在字符串里边(通常用""号引起来),但关于''引号引起来的变量不会被解释

今天倒是刚好碰上这么一个问题,因为本人将$变量存进数据库,所以读出来后就无法解释了,我们将它比喻为'单引号里边的变量比较恰当,类似下面:

$str = 'table=datas&id={$_GET["id"]}&name={$_GET["name"]}';

当然有朋友一看便会说:将外面的'变成"不就行了嘛:$str = "table=datas&id={$_GET["id"]}&name={$_GET["name"]}";

很抱歉:上面我解释过,因为此字符串是数据库里读出来的,只是将它比喻为'单引号里边的变量,即使换成"号也无法解释

想了一通,只想到正则匹配再eval的解释方案,代码如下(有更好解决方案的朋友一定要告诉我)<?php

$str = 'table=datas&id={$_GET["id"]}&name={$_GET["name"]}';

$str = preg_replace_callback( '/{([^}]*)}/', 'getVar', $str);

echo $str;

function getVar($var){

eval("$result = isset({$var[1]})?{$var[1]}:"";");

return $result;

}

梦幻开发组

QQ: 523994553

交流QQ群: 113510264

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值