[英]Replace part of a string that matches a specific pattern
我有一個字符串 -
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()
類的東西可以幫忙嗎?
謝謝。
使用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!"
您可以使用任何一方都被##
包圍的捕獲組:
$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"]}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.