我有一个字符串 -
vessel_type='##some_key##' AND vessel_name= '##other_key##'
我希望将其替换为 -
vessel_type='{$_POST['some_key']}' AND vessel_name='{$_POST['other_key']}'
此some_key
和other_key
可以是任意随机文字。我怎么做?像preg_replace()
这样的东西有帮助吗?
感谢。
答案 0 :(得分:0)
preg_replace_callback
的解决方案:
$_POST['pew'] = 'LOL!';
$str = 'i said ##pew##';
var_dump(preg_replace_callback('/##(\w+)##/', function($v) { return $_POST[$v[1]]; }, $str));
// string(11) "i said LOL!"
答案 1 :(得分:0)
您可以使用任意一侧##
包围的捕获组:
$re = '/##([^#]+)##/';
$str = "vessel_type='##some_key##' AND vessel_name= '##other_key##'";
$subst = '{$_POST["$1"]}';
$result = preg_replace($re, $subst, $str);
//=> vessel_type='{$_POST["some_key"]}' AND vessel_name= '{$_POST["other_key"]}'