$str = "Hello {{name}} welcome to {{company_name}}";
$array = ['name' => 'max', 'company_name' => 'Stack Exchange'];
如何使用數組值替換{{name}}和{{company_name}}。任何PHP函數返回像PHP - 如何更改字符串中使用數組的特定字
輸出Hello max welcome to Stack Exchange
$str = "Hello {{name}} welcome to {{company_name}}";
$array = ['name' => 'max', 'company_name' => 'Stack Exchange'];
如何使用數組值替換{{name}}和{{company_name}}。任何PHP函數返回像PHP - 如何更改字符串中使用數組的特定字
輸出Hello max welcome to Stack Exchange
首先創建與搜索領域一個新的數組,包裹在大括號:
$searchArray = array_map(function($value) {
return "{{" . $value . "}}";
}, array_keys($array));
現在,你有你正在尋找令牌的數組,你已經有了一組你想用它替換標記的值。
所以只是做一個簡單的str_replace
:
echo str_replace($searchArray, $array, $str);
這裏有一個整潔的小功能放在一起:
function fillTemplate($templateString, array $searchReplaceArray) {
return str_replace(
array_map(function($value) { return "{{" . $value . "}}"; }, array_keys($searchReplaceArray)),
$searchReplaceArray,
$templateString
);
}
現在你可以這樣調用它這個:
echo fillTemplate(
"Hello {{name}} welcome to {{company_name}}",
['name' => 'max', 'company_name' => 'Stack Exchange']
);
// Hello max welcome to Stack Exchange
謝謝你的回答 – user3736833
結帳PHP的這個漂亮的功能:http://php.net/manual/de/function.strtr.php 你可以找到有例子,它的解釋。
$str = "Hello {{name}} welcome to {{company_name}}";
$array = ['{{name}}' => 'max', '{{company_name}}' => 'Stack Exchange'];
print strtr ($str, $array);
OP爲什麼要「試試這個」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –
好的,然後...我改變它 – JustOnUnderMillions
很好的編輯,但你不解釋它。 –
它是preg_replace_callback工作 – splash58
感謝您的回覆,你可以給我舉例 – user3736833
如果你的目標是印刷,而不是得到一個字符串,嘗試'回聲「你好」。$名字。「歡迎」。$公司;' –