<?php
$var = '中国';
$str = '您所在的国家是:$var';//这一行是固定的,不能修改的,不允许改成双引号
echo func($str); //结果是// 您所在的国家是:中国上面中的 func($str) 函数应该怎么写,
才能得出结果(echo func($str); //结果是// 您所在的国家是:中国)
解决方案 »
- 为什么不管怎么样max()返回值都是9
- referer真的可以伪造吗?
- 页面跳转后 火狐显示数据 IE没有数据
- 发附件问题,mb_send_mail不可以,mail可以,为啥?
- 为什么我在 Sqlite 中创建的表在php应用程序中无法访问呢?
- “restart apache”为什么“addmodule”报错啊?
- php高手,请加群14471754 ..散分 100分
- apache+php+mysq集成!怎么不能进入后啊?
- 我想用$_SERVER['DOCUMENT_ROOT']来表示网站的根目录,可是有个虚拟主机商却让这个函数指向别处了
- 求助:关于PHP 读写 Word文档的问题!
- 對象序列化
- IIS+PHP(5.1.2) 配置问题
global $var;
return eval($str);
}//没测试 ...
<?php
$var = '中国';
$str = '您所在的国家是:$var';//这一行是固定的,不能修改的,不允许改成双引号
echo func($str); //结果是// 您所在的国家是:中国function func($str)
{
return str_replace('$var','中国',$str);
//return '您所在的国家是:中国'; 这也是可以的
}
?>
func函数有什么限制?
global $var;
return eval('return "' . $str . '";');
}
既然不推荐eval, 那你的代码 - -!
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in E:\root\php\debug.php(8) : eval()'d code on line 1<?php
$arr['cn'] = '中国';
$str = 'id=$arr[\'cn\']';//这一行是固定的,不能修改的,不允许改成双引号
echo func($str); //结果是// 您所在的国家是:中国function func($str) {
global $var;
return eval('return "' . $str . '";');
}
?>
$arr['cn'] = '中国';
$str = '您所在的国家是:$arr[\'cn\']';//这一行是固定的,不能修改的,不允许改成双引号
echo func($str); //结果是// 您所在的国家是:中国function func($str) {
global $arr;
return eval('return "' . $str . '";');//stripslashes
}
?>
这问题在于单引号,可执行代码如下:$arr['cn'] = '中国';
$str = '您所在的国家是:$arr[\'cn\']';
echo func($str);function func($str) {
global $arr;
return eval('return "' . str_replace("'", "", $str) . '";');//这里为了偷懒,直接替换了,实际如果需要,替换必须严格的将变量找出来
}