问个高深点的问题!! <?php$var = '中国';$str = '您所在的国家是:$var';//这一行是固定的,不能修改的,不允许改成双引号echo func($str); //结果是// 您所在的国家是:中国上面中的 func($str) 函数应该怎么写,才能得出结果(echo func($str); //结果是// 您所在的国家是:中国) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function func($str) { global $var; return eval($str);}//没测试 ... <?php $var = '中国';$str = '您所在的国家是:$var';//这一行是固定的,不能修改的,不允许改成双引号echo func($str); //结果是// 您所在的国家是:中国function func($str){ return str_replace('$var','中国',$str); //return '您所在的国家是:中国'; 这也是可以的 }?>func函数有什么限制? 呵呵,不推荐evalfunction func($str) { global $var; return eval('return "' . $str . '";');} 既然不推荐eval, 那你的代码 - -! 3楼的代码是行的,不过改下面这样就不行了原来这样才不行。如下: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 . '";');}?> 发错了,下面这样就不行了<?php$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) . '";');//这里为了偷懒,直接替换了,实际如果需要,替换必须严格的将变量找出来} php获取google来源关健词 麻烦帮看看是哪里错了啊 php符号:=> 是什么东东? 高手帮忙看下php里数据写入文件错误 数组问题,想不出来好办法了,大家帮忙 招募在京奋战的php战士 正则表达式问题,急 php做系统的shell的问题 紧急求救有关PHP分页的问题 句柄是专属于windows操作系统下的概念吗 對象序列化 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) . '";');//这里为了偷懒,直接替换了,实际如果需要,替换必须严格的将变量找出来
}