截取字符串,然后在拼装起来。给个思路各位。 三部处置室护理费+三部处置室护理治疗费+三部处置室化验费+(三部处置室床日总量+三部处置室入院人数*3+三部处置室出院人数*0.3) 把这上面的汉字先截取出来,我会在数据库中获取对应的费用用,然后在拼装好进行运算。我的处理是把运算符都替换为“,”然后以“,”分割这样的方式处理的。现在就是拼装怎么去拼装。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str = '三部处置室护理费+三部处置室护理治疗费+三部处置室化验费+(三部处置室床日总量+三部处置室入院人数*3+三部处置室出院人数*0.3)';preg_match_all("|[^0-9*.+()]+|", $str, $matches);$ar_txt = array_values($matches[0]);$ar_val = array(1,2,3,4,5,6); //中文项目对应的价格数值$str = str_replace($ar_txt, $ar_val, $str);echo $str; //1+2+3+(4+5*3+6*0.3) preg_match_all("|[^0-9*.+-/()]+|", $str, $matches); $str='三部处置室护理费+三部处置室护理治疗费+三部处置室化验费+(三部处置室床日总量+三部处置室入院人数*3+三部处置室出院人数*0.3)';$out=preg_replace_callback('/[^\+\-\*\/\(\)]+/',create_function( '$match', ' $field=$match[0]; $result="[$field]"; //$result=select price from tbl where name=$field return $result; '),$str);echo $out; 怎么把最后得到的那个string类型的字符串让它计算出随后的数值呢。真心谢谢2位了,帮了个大忙。 $str = '三部处置室护理费+三部处置室护理治疗费+三部处置室化验费+(三部处置室床日总量+三部处置室入院人数*3+三部处置室出院人数*0.3)';preg_match_all("|[^0-9*.+\-/()]+|", $str, $matches);$ar_txt = array_values($matches[0]);$ar_val = array(1,2,3,4,5,6); //中文项目对应的价格数值$str = str_replace($ar_txt, $ar_val, $str);eval("\$result = $str");echo $result; 试过了,这个函数不行。$nsd="1+2+3"; eval("\$nsd = \"$nsd\";"); echo $nsd;打印出来是:1+2+3 $nsd="1+2+3";eval("\$nsd = $nsd;");echo $nsd; 如果上面的$nsd变量里面的运算公式出错。比如说出现++或者--,程序运行到这里的时候就会直接输出报错信息,这个可不可以控制。我有查找资料,还是没有解决这个问题。再麻烦一下你。谢谢了。 我想了个办法用issset去判断把为空的改为了0.但是在用isset的时候没办法去捕获为空的。很奇怪 PHP HTML5 websocket如何初始化,老是失败 局域网内数据库备份?? 两道PHP程序员面试题 php 如何保存 base64编码的图片 如何在一个表(题库)里随机抽出100个ID,且不重复 include老是出问题 php 编码问题 php与javascript 批量删除 foreach遍历 是如何遍历的 指针问题 哪位老大能给解释一下这是什么原因?我晕!!!!在线等!!!! PHP time()得到的时间比实际时间快2分多钟 请教一下,为什么说Mysql预处理可以防止SQL注入呢???
preg_match_all("|[^0-9*.+()]+|", $str, $matches);
$ar_txt = array_values($matches[0]);
$ar_val = array(1,2,3,4,5,6); //中文项目对应的价格数值
$str = str_replace($ar_txt, $ar_val, $str);
echo $str; //1+2+3+(4+5*3+6*0.3)
$str='三部处置室护理费+三部处置室护理治疗费+三部处置室化验费+(三部处置室床日总量+三部处置室入院人数*3+三部处置室出院人数*0.3)';
$out=preg_replace_callback('/[^\+\-\*\/\(\)]+/',create_function(
'$match',
'
$field=$match[0];
$result="[$field]";
//$result=select price from tbl where name=$field
return $result;
'
),$str);echo $out;
preg_match_all("|[^0-9*.+\-/()]+|", $str, $matches);
$ar_txt = array_values($matches[0]);
$ar_val = array(1,2,3,4,5,6); //中文项目对应的价格数值
$str = str_replace($ar_txt, $ar_val, $str);
eval("\$result = $str");
echo $result;
$nsd="1+2+3";
eval("\$nsd = \"$nsd\";");
echo $nsd;
打印出来是:1+2+3
eval("\$nsd = $nsd;");
echo $nsd;