我有一個文本區域供用戶插入文本,但如果用戶鍵入 {{name}}、{{nickname}} 和 {{email}}。它必須顯示具有該值的訊息。讓我演示一下: 例如:如果用戶型別:您好,{{name}} 有 {{nickname}} 和 {{email}},則訊息必須是這樣的:您好,用戶 A 有昵稱 A 和 [email protected] .
這是我的刀片視圖:
// User insert text here
<textarea name="content" value=""></textarea>
我的控制器:
// My controller did not work, but I want to know how to use explode
$content = $request->input('content');
$new_content = explode($content, '{{name}}', '{{nickname}}', '{{email}}');
uj5u.com熱心網友回復:
這是我在許多專案中使用的一種方法,允許模板輸入和回傳替換的函式。
這里,$subject 是被修改的文本。
preg_match_all('/{{(\S*)}}/',$subject,$matches,PREG_SET_ORDER);
foreach($matches as $match) {
$func = 'replace_'.$match[1];
if(method_exists($this,$func)) {
$subject = str_replace($match[0], $this->$func($match), $this->subject);
}
}
然后,您可以創建以字串開頭replace_并回傳要插入原始訊息的函式
例如
public function replace_name($match)
{
return $$this->user->name;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451571.html
